@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.
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
version that you are working on. See TRANSLATION for details.
@end ignore
+@c \version "2.11.64"
@node Spacing issues
@chapter Spacing issues
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.
\relative { c1 \break c1 }
}
\paper {
- systemSeparatorMarkup = \slashSeparator
+ system-separator-markup = \slashSeparator
}
}
@end lilypond
@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.
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
@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.
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
\hcenter -> \center-align
printallheaders -> print-all-headers
\bigger -> \larger (already existing command)
+systemSeparatorMarkup -> system-separator-markup
@end example
@noindent
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
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.
\relative { c1 \break c1 }
}
\paper {
- systemSeparatorMarkup = \slashSeparator
+ system-separator-markup = \slashSeparator
}
}
@end lilypond
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
"
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
--- /dev/null
+%% 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
+ }
+ >>
+ }
+ >>
+}
"
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,
"
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
"
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
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
"
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 = "
"
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
\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}
"
+%% 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.
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
"
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
"
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
"
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
"
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
"
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
%% 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
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
"
+%% 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
\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},
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
}
}
->>
+}
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.
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
- }
->>
"
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:
"
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
"
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
"
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 = "
"
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},
"
+%% 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
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
"
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
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' }
- >>
+ }
}
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
"
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,
"
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
\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
@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:
\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
"
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
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
"
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
--- /dev/null
+\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++>
+ }
+>>
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Basics (pitches, durations, ...)
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
\ No newline at end of file
<score-partwise>
<movement-title>Pitches and accidentals</movement-title>
<identification>
- <creator type="composer">Reinhold Kainhofer</creator>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise>
<movement-title>Various piches and interval sizes</movement-title>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">All pitch intervals in ascending
+ jump size.</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P1">
<part-name>MusicXML Part</part-name>
<score-partwise>
<movement-title>Note durations</movement-title>
<identification>
- <creator type="composer">Reinhold Kainhofer</creator>
+ <miscellaneous>
+ <miscellaneous-field name="description">All note durations, from long,
+ brevis, whole until 128th; First with their plain values, then dotted
+ and finally doubly-dotted.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<score-partwise>\r
<movement-title>Rest unit test</movement-title>\r
<identification>\r
- <creator type="composer">Reinhold Kainhofer</creator>\r
<rights>Public Domain</rights>\r
<encoding>\r
<software>Finale 2007 for Windows</software>\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-26</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">All different rest lengths: A \r
+ two-bar multi-measure rest, a whole rest, a half, etc. until a \r
+ 128th-rest; Then the same with dotted durations.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>/usr/bin/vi</software>
<encoding-date>2007-02-02</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1"><part-name>MIDI Track 1</part-name></score-part>
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-09-01</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Various clefs: G, C, F, percussion, \r
+ TAB and none; some are also possible with octavation and on other \r
+ staff lines than their default (e.g. soprano/alto/tenor/bariton C \r
+ clefs); Each measure shows a different clef (measure 17 has the "none" \r
+ clef), only measure 18 has the same treble clef as measure \r
+ 1.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
</measure>\r
<!--=======================================================-->\r
<measure number="17">\r
- <attributes>\r
- <clef>\r
- <sign>TAB</sign>\r
- <line>5</line>\r
- </clef>\r
- </attributes>\r
- <note>\r
- <pitch>\r
- <step>C</step>\r
- <octave>4</octave>\r
- </pitch>\r
- <duration>4</duration>\r
- <voice>1</voice>\r
- <type>whole</type>\r
- </note>\r
- </measure>\r
- <!--=======================================================-->\r
- <measure number="18">\r
<print new-system="yes"/>\r
<attributes>\r
<clef>\r
</note>\r
</measure>\r
<!--=======================================================-->\r
- <measure number="19">\r
+ <measure number="18">\r
<attributes>\r
<clef>\r
<sign>G</sign>\r
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise>
<movement-title>Different Key signatures</movement-title>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">Various key signature: from 11 flats to 11 sharps (each one first one measure in major, then one measure in minor)</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P1">
<part-name>MusicXML Part</part-name>
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise>
<movement-title>Different time signatures</movement-title>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">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</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P1">
<part-name>MusicXML Part</part-name>
<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="2.0">
<work><work-title>No key or clef given</work-title></work>
- <identification/>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">A score without
+ any key or clef defined. The default (4/4 in treble
+ clef) should be used.</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P0">
<part-name></part-name>
<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="2.0">
- <work><work-title>No time signature given</work-title></work>
- <identification/>
+ <work><work-title>No time signature given</work-title></work>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">A score without
+ a time signature (but with a key and clefs)</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P1">
<part-name></part-name>
<score-partwise version="1.1">
<movement-title>Backup not to 0 in second voice</movement-title>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P1">
<part-name></part-name>
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-11-26</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Four multi-measure rests: 3 \r
+ measures, 15 measures, 1 measure, and 12 measures.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise>
<work><work-title>A tie</work-title></work>
- <identification/>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">Two simple tied whole notes</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P1"><part-name></part-name></score-part>
</part-list>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"\r
+ "http://www.musicxml.org/dtds/partwise.dtd">\r
+<score-partwise version="1.1">\r
+ <movement-title>Multi-measure rests (different time signatures)</movement-title>\r
+ <identification>\r
+ <creator type="composer">Reinhold Kainhofer</creator>\r
+ <rights>Public Domain</rights>\r
+ <encoding>\r
+ <software>Finale 2008 for Windows</software>\r
+ <software>Dolet Light for Finale 2008</software>\r
+ <encoding-date>2008-11-11</encoding-date>\r
+ </encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Multi-Measure rests should always \r
+ be converted into durations that are a multiple of the time \r
+ signature.</miscellaneous-field>\r
+ </miscellaneous>\r
+ </identification>\r
+ <part-list>\r
+ <score-part id="P1">\r
+ <part-name print-object="no">MusicXML Part</part-name>\r
+ <score-instrument id="P1-I1">\r
+ <instrument-name>Acoustic Grand Piano</instrument-name>\r
+ </score-instrument>\r
+ <midi-instrument id="P1-I1">\r
+ <midi-channel>1</midi-channel>\r
+ <midi-program>1</midi-program>\r
+ </midi-instrument>\r
+ </score-part>\r
+ </part-list>\r
+ <!--=========================================================-->\r
+ <part id="P1">\r
+ <measure number="1">\r
+ <attributes>\r
+ <divisions>1</divisions>\r
+ <key>\r
+ <fifths>0</fifths>\r
+ <mode>major</mode>\r
+ </key>\r
+ <time symbol="common">\r
+ <beats>4</beats>\r
+ <beat-type>4</beat-type>\r
+ </time>\r
+ <clef>\r
+ <sign>G</sign>\r
+ <line>2</line>\r
+ </clef>\r
+ <measure-style>\r
+ <multiple-rest>2</multiple-rest>\r
+ </measure-style>\r
+ </attributes>\r
+ <note>\r
+ <rest/>\r
+ <duration>4</duration>\r
+ <voice>1</voice>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="2">\r
+ <note>\r
+ <rest/>\r
+ <duration>4</duration>\r
+ <voice>1</voice>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="3">\r
+ <attributes>\r
+ <time>\r
+ <beats>3</beats>\r
+ <beat-type>4</beat-type>\r
+ </time>\r
+ <measure-style>\r
+ <multiple-rest>3</multiple-rest>\r
+ </measure-style>\r
+ </attributes>\r
+ <note>\r
+ <rest/>\r
+ <duration>3</duration>\r
+ <voice>1</voice>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="4">\r
+ <note>\r
+ <rest/>\r
+ <duration>3</duration>\r
+ <voice>1</voice>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="5">\r
+ <note>\r
+ <rest/>\r
+ <duration>3</duration>\r
+ <voice>1</voice>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="6">\r
+ <attributes>\r
+ <time>\r
+ <beats>2</beats>\r
+ <beat-type>4</beat-type>\r
+ </time>\r
+ <measure-style>\r
+ <multiple-rest>2</multiple-rest>\r
+ </measure-style>\r
+ </attributes>\r
+ <note>\r
+ <rest/>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="7">\r
+ <note>\r
+ <rest/>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="8">\r
+ <attributes>\r
+ <time symbol="common">\r
+ <beats>4</beats>\r
+ <beat-type>4</beat-type>\r
+ </time>\r
+ <measure-style>\r
+ <multiple-rest>2</multiple-rest>\r
+ </measure-style>\r
+ </attributes>\r
+ <note>\r
+ <rest/>\r
+ <duration>4</duration>\r
+ <voice>1</voice>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="9">\r
+ <note>\r
+ <rest/>\r
+ <duration>4</duration>\r
+ <voice>1</voice>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="10">\r
+ <note>\r
+ <pitch>\r
+ <step>C</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>4</duration>\r
+ <voice>1</voice>\r
+ <type>whole</type>\r
+ </note>\r
+ <barline location="right">\r
+ <bar-style>light-heavy</bar-style>\r
+ </barline>\r
+ </measure>\r
+ </part>\r
+ <!--=========================================================-->\r
+</score-partwise>\r
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Chorded notes
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
\ No newline at end of file
<encoding>
<software>Rosegarden-4</software>
</encoding>
- </identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">One simple chord
+ consisting of two notes.</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P0">
<part-name>Chord test</part-name>
<encoding>
<software>Rosegarden-4</software>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">Some subsequent
+ (identical) two-note chords.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P0">
<encoding>
<software>Rosegarden-4</software>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">Some three-note
+ chords, with various durations.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P0">
<encoding>
<software>Rosegarden-4</software>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">Chords in the
+ second measure, after several ornaments in the first
+ measure and a p at the beginning of the second
+ measure.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P0">
<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="2.0">
- <work>
- <work-title>Chord detection messed up</work-title>
- </work>
+ <work>
+ <work-title>Chord detection messed up</work-title>
+ </work>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">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!</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P2">
<part-name>Piano</part-name>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+ <work> <work-title>Elements between notes of a chord</work-title></work>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">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).</miscellaneous-field>
+ </miscellaneous>
+ </identification>
+ <part-list>
+ <score-part id="P0">
+ <part-name>Chord test</part-name>
+ <score-instrument id="I1">
+ <instrument-name>0</instrument-name>
+ </score-instrument>
+ <midi-instrument id="I1">
+ <midi-channel>1</midi-channel>
+ <midi-program>1</midi-program>
+ </midi-instrument>
+ </score-part>
+ </part-list>
+ <part id="P0">
+ <measure number="1">
+ <attributes>
+ <divisions>960</divisions>
+ <time>
+ <beats>4</beats>
+ <beat-type>4</beat-type>
+ </time>
+ <clef>
+ <sign>G</sign>
+ <line>2</line>
+ </clef>
+ </attributes>
+ <note>
+ <pitch>
+ <step>A</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>960</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ </note>
+ <direction>
+ <direction-type>
+ <segno/>
+ </direction-type>
+ </direction>
+ <note>
+ <chord/>
+ <pitch>
+ <step>F</step>
+ <octave>4</octave>
+ <alter>1</alter>
+ </pitch>
+ <duration>960</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ </note>
+ <direction>
+ <direction-type>
+ <dynamics><p/></dynamics>
+ </direction-type>
+ </direction>
+ <note>
+ <chord/>
+ <pitch>
+ <step>D</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>960</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ </note>
+ <note>
+ <rest/>
+ <duration>960</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ </note>
+ <note>
+ <rest/>
+ <duration>1920</duration>
+ <voice>1</voice>
+ <type>half</type>
+ </note>
+ </measure>
+ </part>
+</score-partwise>
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Notations and Articulations
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
\ No newline at end of file
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="2.0">
<movement-title>MusicXML notations (attached to note)</movement-title>
- <identification/>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">All <notation> elements
+ defined in MusicXML. The lyrics show the notation assigned to each
+ note.</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P1">
<part-name></part-name>
<software>/usr/bin/vi</software>
<encoding-date>2007-02-01</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">Text markup:
+ different font sizes, weights and colors.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1"><part-name></part-name></score-part>
<software>Hand-crafted MusicXML</software>
</encoding>
<miscellaneous>
- <miscellaneous-field name="comment">
+ <miscellaneous-field name="description">
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.
</miscellaneous-field>
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="2.0">
<movement-title>Arpeggios in MusicXML</movement-title>
- <identification/>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">Different Arpeggio directions
+ (normal, up, down, non-arpeggiate)</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<defaults/>
<part-list>
<score-part id="P1">
--- /dev/null
+\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
"http://www.musicxml.org/dtds/partwise.dtd">\r
<score-partwise version="2.0">\r
<movement-title>MusicXML directions (attached to staff)</movement-title>\r
- <identification/>\r
+ <identification>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">All <direction> elements \r
+ defined in MusicXML. The lyrics for each note describes the direction\r
+ element assigned to that note.</miscellaneous-field>\r
+ </miscellaneous>\r
+ </identification>\r
<defaults/>\r
<part-list>\r
<score-part id="P1">\r
"http://www.musicxml.org/dtds/partwise.dtd">\r
<score-partwise version="2.0">\r
<movement-title>Accordion registrations</movement-title>\r
- <identification/>\r
+ <identification>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">All possible accordion \r
+ registrations.</miscellaneous-field>\r
+ </miscellaneous>\r
+ </identification>\r
<defaults/>\r
<part-list>\r
<score-part id="P1">\r
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="1.1">
<movement-title>Tempo markings</movement-title>
- <identification/>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">Tempo Markings: note=bpm,
+ text (note=bpm), note=note, (note=note), (note=bpm)</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<defaults/>
<part-list>
<score-part id="P1">
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Spanners
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-08-31</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Several spanners defined in MusicXML</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="2.0">
<movement-title>Glissando and Slide in MusicXML</movement-title>
- <identification/>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">All different types of
+ glissando defined in MusicXML</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<defaults/>
<part-list>
<score-part id="P1">
<encoding>
<software>NoteEdit</software>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">Some spanners, exported by NoteEdit</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<encoding>
<software>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</software>
</encoding>
+<miscellaneous>
+<miscellaneous-field name="description">Some spanners, exported by JMSL's MusicXMLWriter</miscellaneous-field>
+</miscellaneous>
</identification>
<part-list>
<score-part id="P1" >
<software>Dolet Light for Finale 2007</software>
<encoding-date>2007-09-14</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">All types of octave shifts (15ma, 15mb, 8va, 8vb)</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"\r
+ "http://www.musicxml.org/dtds/partwise.dtd">\r
+<score-partwise version="1.1">\r
+ <movement-title>Slurs</movement-title>\r
+ <identification>\r
+ <creator type="composer">Reinhold Kainhofer</creator>\r
+ <rights>Public Domain</rights>\r
+ <encoding>\r
+ <software>Finale 2008 for Windows</software>\r
+ <software>Dolet Light for Finale 2008</software>\r
+ <encoding-date>2008-11-11</encoding-date>\r
+ </encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A note can be the end of one \r
+ slur and the start of a new slur. Also, in MusicXML, nested slurs \r
+ are possible.</miscellaneous-field>\r
+ </miscellaneous>\r
+ </identification>\r
+ <part-list>\r
+ <score-part id="P1">\r
+ <part-name print-object="no">MusicXML Part</part-name>\r
+ <score-instrument id="P1-I1">\r
+ <instrument-name>Grand Piano</instrument-name>\r
+ </score-instrument>\r
+ <midi-instrument id="P1-I1">\r
+ <midi-channel>1</midi-channel>\r
+ <midi-program>1</midi-program>\r
+ </midi-instrument>\r
+ </score-part>\r
+ </part-list>\r
+ <!--=========================================================-->\r
+ <part id="P1">\r
+ <measure number="1">\r
+ <attributes>\r
+ <divisions>1</divisions>\r
+ <key>\r
+ <fifths>0</fifths>\r
+ <mode>major</mode>\r
+ </key>\r
+ <time symbol="common">\r
+ <beats>4</beats>\r
+ <beat-type>4</beat-type>\r
+ </time>\r
+ <clef>\r
+ <sign>G</sign>\r
+ <line>2</line>\r
+ </clef>\r
+ </attributes>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <notations>\r
+ <slur number="1" placement="above" type="start"/>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>C</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <notations>\r
+ <slur number="1" type="stop"/>\r
+ <slur number="1" placement="above" type="start"/>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>A</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <notations>\r
+ <slur number="1" type="stop"/>\r
+ <slur number="1" placement="below" type="start"/>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <notations>\r
+ <slur number="1" type="stop"/>\r
+ </notations>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="2">\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <notations>\r
+ <slur number="1" placement="above" type="start"/>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>C</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <notations>\r
+ <slur number="2" placement="above" type="start"/>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>A</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <stem default-y="10.5">up</stem>\r
+ <notations>\r
+ <slur number="2" type="stop"/>\r
+ </notations>\r
+ </note>\r
+ <note default-x="312">\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <stem default-y="5.5">up</stem>\r
+ <notations>\r
+ <slur number="1" type="stop"/>\r
+ </notations>\r
+ </note>\r
+ <barline location="right">\r
+ <bar-style>light-heavy</bar-style>\r
+ </barline>\r
+ </measure>\r
+ </part>\r
+ <!--=========================================================-->\r
+</score-partwise>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
+ "http://www.musicxml.org/dtds/partwise.dtd">\r
+<score-partwise>\r
+ <movement-title>Sonata No. 2</movement-title>\r
+ <identification>\r
+ <creator type="composer">Simon Bielman</creator>\r
+ <encoding>\r
+ <software>Finale 2007 for Windows</software>\r
+ <software>Dolet Light for Finale 2007</software>\r
+ <encoding-date>2008-08-20</encoding-date>\r
+ </encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A trill spanner that ends on an \r
+ after-grace note.</miscellaneous-field>\r
+ </miscellaneous>\r
+ </identification>\r
+ <part-list>\r
+ <score-part id="P1">\r
+ <part-name>Piano</part-name>\r
+ <score-instrument id="P1-I1">\r
+ <instrument-name>Acoustic Grand Piano</instrument-name>\r
+ </score-instrument>\r
+ <midi-instrument id="P1-I1">\r
+ <midi-channel>1</midi-channel>\r
+ <midi-program>1</midi-program>\r
+ </midi-instrument>\r
+ </score-part>\r
+ </part-list>\r
+ <!--=========================================================-->\r
+ <part id="P1">\r
+ <measure number="25">\r
+ <attributes>\r
+ <divisions>336</divisions>\r
+ <key>\r
+ <fifths>0</fifths>\r
+ <mode>major</mode>\r
+ </key>\r
+ <time>\r
+ <beats>6</beats>\r
+ <beat-type>8</beat-type>\r
+ </time>\r
+ <staves>2</staves>\r
+ <clef number="1">\r
+ <sign>G</sign>\r
+ <line>2</line>\r
+ </clef>\r
+ <clef number="2">\r
+ <sign>F</sign>\r
+ <line>4</line>\r
+ </clef>\r
+ </attributes>\r
+ <note>\r
+ <pitch>\r
+ <step>E</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>336</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ <notations>\r
+ <slur number="1" placement="above" type="start"/>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>F</step>\r
+ <alter>1</alter>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>84</duration>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <accidental>sharp</accidental>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">begin</beam>\r
+ <beam number="2">begin</beam>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>84</duration>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">end</beam>\r
+ <beam number="2">end</beam>\r
+ <notations>\r
+ <slur number="1" type="stop"/>\r
+ <ornaments>\r
+ <trill-mark default-y="39"/>\r
+ <wavy-line default-y="39" number="1" type="start"/>\r
+ </ornaments>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <grace/>\r
+ <pitch>\r
+ <step>B</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>A</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>504</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <dot/>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ </note>\r
+ <note>\r
+ <grace/>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">begin</beam>\r
+ <beam number="2">begin</beam>\r
+ </note>\r
+ <note>\r
+ <grace/>\r
+ <pitch>\r
+ <step>A</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">end</beam>\r
+ <beam number="2">end</beam>\r
+ <notations>\r
+ <ornaments>\r
+ <wavy-line number="1" type="stop"/>\r
+ </ornaments>\r
+ </notations>\r
+ </note>\r
+ </measure>\r
+ </part>\r
+ <!--=========================================================-->\r
+</score-partwise>\r
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Header information
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<software>"Hand-crafted" MusicXML file</software>\r
<encoding-date>2008-02-06</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Several header fields and part \r
+ names can contain quotes ("). This test checks whether they are \r
+ converted/imported without problems (i.e. whether they are correctly\r
+ escaped when converting).</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Lyrics
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-08-29</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Some notes with simple lyrics: Syllables, notes without a syllable, syllable spanners.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>
<encoding-date>2007-08-31</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">Multiple (simple) lyrics. The
+ order of the exported stanzas is relevant (identified by the number
+ attribute in this test case)</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-08-29</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Lyrics assigned to the voices of \r
+ a piano staff containing two simple staves. Each staff is assigned \r
+ exactly one lyrics line.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-23</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">How to treat lyrics and slurred \r
+ notes. Normally, a slurred group of notes is assigned only one lyrics \r
+ syllable.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-23</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Assigning lyrics to chorded notes.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-27</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Grace notes shall not mess up the \r
+ lyrics, and they shall not be assigned a syllable.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<movement-title>Lyrics attributes: name and number</movement-title>
<identification>
<creator type="composer">Reinhold Kainhofer</creator>
+ <miscellaneous>
+ <miscellaneous-field name="description">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").</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="1.1">
<movement-title>Lyrics and melismata</movement-title>
- <identification/>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<defaults/>
<part-list>
<score-part id="P1">
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Multiple parts (staves)
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<encoding>
<software>Rosegarden-4</software>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">A piece with
+ four parts. Are they converted in the correct order?</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P0">
<software>Dolet Light for Finale 2006</software>
<encoding-date>2007-08-25</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<part-group number="2" type="start">
<encoding>
<software>Rosegarden-4</software>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">A piece with
+ more than 10 parts to check whether the parts are
+ correctly sorted.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P0">
<score-partwise>
<movement-title>Part test</movement-title>
<identification>
- <creator type="composer">Reinhold Kainhofer</creator>
<rights>Public Domain</rights>
<encoding>
<software>Finale 2007 for Windows</software>
<software>Dolet Light for Finale 2007</software>
<encoding-date>2007-09-18</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<software>Dolet Light for Finale 2007</software>
<encoding-date>2007-09-23</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">Part names and abbreviations can
+ contain line breaks.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<software>/usr/bin/vi</software>
<encoding-date>2007-01-22</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">A simple piano staff</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<score-partwise>\r
<movement-title>Overlapping part groups</movement-title>\r
<identification>\r
- <creator type="composer">In MusicXML groups can overlap (Grp1: #1-4, Grp2: #3-5)</creator>\r
- <creator type="arranger">In Lilypond, overlaps are not possible: Grp2 ends at #4</creator>\r
<encoding>\r
<software>Finale 2007 for Windows</software>\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-28</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">MusicXML allows for overlapping \r
+ part-groups, while many applications do not allow overlapping groups, \r
+ but require them to be properly nested. In this case, one group \r
+ (with a square bracket) goes from staff 2 to 4) and another group \r
+ (with a curly bracket) goes from staff 3 to 5.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<part-group number="1" type="start">\r
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Measures, Barlines, Repeats
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-17</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A simple, repeated measure \r
+ (repeated 5 times)</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-17</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A simple repeat with two \r
+ alternative endings (volta brackets).</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-09-21</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Different types of (non-repeat) \r
+ barlines.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-19</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Repeats can also be nested.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-15</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Nested repeats, each with \r
+ alternative endings.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-08-31</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Some more nested repeats with \r
+ alternatives. The barline between measure 7 and 8 will probably be \r
+ messed up! (Should be a repeat on both sides!)</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-13</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Some more nested repeats with \r
+ alternatives, where the MusicXML file does not make sense in the \r
+ first place. How well are applications able to cope with improper \r
+ repeats and alternatives?</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-23</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A forward-repeating bar line \r
+ without an ending repeat bar.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
</work>
<identification>
<creator type="composer"></creator>
+ <miscellaneous>
+ <miscellaneous-field name="description">Barlines can appear at
+ mid-measure positions!</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<software>Dolet Light for Finale 2007</software>
<encoding-date>2007-09-22</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">A clef change in the middle of a measure</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-09</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A 3/8 pickup measure, a measure \r
+ that is split into one (incomplete, only 2/4) measure and an implicit \r
+ measure, and an incomplete measure (containg 3/4).</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="2.0">
<work>
- <work-title>Begin of second voice messed up with pickup measure</work-title>
+ <work-title>Pickup measure with two voices</work-title>
</work>
<identification>
- <creator type="composer">Voice 2 should start at 2nd beat of first full measure</creator>
+ <miscellaneous>
+ <miscellaneous-field name="description">Voice 2 should start at 2nd
+ beat of first full measure.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
+ "http://www.musicxml.org/dtds/partwise.dtd">\r
+<score-partwise>\r
+ <movement-title>Sonata No. 2</movement-title>\r
+ <identification>\r
+ <creator type="composer">Simon Bielman</creator>\r
+ <encoding>\r
+ <software>Finale 2007 for Windows</software>\r
+ <software>Dolet Light for Finale 2007</software>\r
+ <encoding-date>2008-08-20</encoding-date>\r
+ </encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A multi-voice / multi-staff part \r
+ with a clef change in the middle of a measure and a <backward> \r
+ for voice 2 jumping back beyond that clef change.</miscellaneous-field>\r
+ </miscellaneous>\r
+ </identification>\r
+ <part-list>\r
+ <score-part id="P1">\r
+ <part-name>Piano</part-name>\r
+ <score-instrument id="P1-I1">\r
+ <instrument-name>Acoustic Grand Piano</instrument-name>\r
+ </score-instrument>\r
+ <midi-instrument id="P1-I1">\r
+ <midi-channel>1</midi-channel>\r
+ <midi-program>1</midi-program>\r
+ </midi-instrument>\r
+ </score-part>\r
+ </part-list>\r
+ <!--=========================================================-->\r
+ <part id="P1">\r
+ <measure number="84">\r
+ <attributes>\r
+ <divisions>336</divisions>\r
+ <key>\r
+ <fifths>0</fifths>\r
+ <mode>major</mode>\r
+ </key>\r
+ <time>\r
+ <beats>6</beats>\r
+ <beat-type>8</beat-type>\r
+ </time>\r
+ <staves>2</staves>\r
+ <clef number="1">\r
+ <sign>G</sign>\r
+ <line>2</line>\r
+ </clef>\r
+ <clef number="2">\r
+ <sign>F</sign>\r
+ <line>4</line>\r
+ </clef>\r
+ </attributes>\r
+ <note>\r
+ <pitch>\r
+ <step>F</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>1</voice>\r
+ <type>eighth</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">begin</beam>\r
+ <notations>\r
+ <articulations>\r
+ <staccato placement="below"/>\r
+ </articulations>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>D</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>1</voice>\r
+ <type>eighth</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">continue</beam>\r
+ <notations>\r
+ <articulations>\r
+ <staccato placement="below"/>\r
+ </articulations>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>B</step>\r
+ <octave>3</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>1</voice>\r
+ <type>eighth</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">end</beam>\r
+ <notations>\r
+ <articulations>\r
+ <staccato placement="below"/>\r
+ </articulations>\r
+ </notations>\r
+ </note>\r
+ <attributes>\r
+ <clef number="1">\r
+ <sign>F</sign>\r
+ <line>4</line>\r
+ </clef>\r
+ </attributes>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>3</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>1</voice>\r
+ <type>eighth</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ <notations>\r
+ <slur number="1" placement="above" type="start"/>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>F</step>\r
+ <octave>3</octave>\r
+ </pitch>\r
+ <duration>336</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ <notations>\r
+ <slur number="1" type="stop"/>\r
+ </notations>\r
+ </note>\r
+ <backup>\r
+ <duration>1008</duration>\r
+ </backup>\r
+ <note>\r
+ <rest/>\r
+ <duration>168</duration>\r
+ <voice>3</voice>\r
+ <type>eighth</type>\r
+ <staff>2</staff>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>2</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>3</voice>\r
+ <type>eighth</type>\r
+ <stem>up</stem>\r
+ <staff>2</staff>\r
+ <beam number="1">begin</beam>\r
+ <notations>\r
+ <articulations>\r
+ <staccato placement="below"/>\r
+ </articulations>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>2</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>3</voice>\r
+ <type>eighth</type>\r
+ <stem>up</stem>\r
+ <staff>2</staff>\r
+ <beam number="1">end</beam>\r
+ <notations>\r
+ <articulations>\r
+ <staccato placement="below"/>\r
+ </articulations>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>2</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>3</voice>\r
+ <type>eighth</type>\r
+ <stem>up</stem>\r
+ <staff>2</staff>\r
+ <beam number="1">begin</beam>\r
+ <notations>\r
+ <slur number="1" placement="below" type="start"/>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>A</step>\r
+ <octave>2</octave>\r
+ </pitch>\r
+ <duration>84</duration>\r
+ <voice>3</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>2</staff>\r
+ <beam number="1">continue</beam>\r
+ <beam number="2">begin</beam>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>2</octave>\r
+ </pitch>\r
+ <duration>84</duration>\r
+ <voice>3</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>2</staff>\r
+ <beam number="1">continue</beam>\r
+ <beam number="2">continue</beam>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>F</step>\r
+ <alter>1</alter>\r
+ <octave>2</octave>\r
+ </pitch>\r
+ <duration>84</duration>\r
+ <voice>3</voice>\r
+ <type>16th</type>\r
+ <accidental>sharp</accidental>\r
+ <stem>up</stem>\r
+ <staff>2</staff>\r
+ <beam number="1">continue</beam>\r
+ <beam number="2">continue</beam>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>2</octave>\r
+ </pitch>\r
+ <duration>84</duration>\r
+ <voice>3</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>2</staff>\r
+ <beam number="1">end</beam>\r
+ <beam number="2">end</beam>\r
+ <notations>\r
+ <slur number="1" type="stop"/>\r
+ </notations>\r
+ </note>\r
+ <barline location="right">\r
+ <bar-style>light-light</bar-style>\r
+ </barline>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="85">\r
+ <attributes>\r
+ <clef number="1">\r
+ <sign>G</sign>\r
+ <line>2</line>\r
+ </clef>\r
+ </attributes>\r
+ <note>\r
+ <pitch>\r
+ <step>E</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>1</voice>\r
+ <type>eighth</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">begin</beam>\r
+ <notations>\r
+ <articulations>\r
+ <staccato placement="below"/>\r
+ </articulations>\r
+ <dynamics default-y="-61" placement="below" relative-x="-14">\r
+ <fp/>\r
+ </dynamics>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>C</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>1</voice>\r
+ <type>eighth</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">continue</beam>\r
+ <notations>\r
+ <articulations>\r
+ <staccato placement="below"/>\r
+ </articulations>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>1</voice>\r
+ <type>eighth</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">end</beam>\r
+ <notations>\r
+ <articulations>\r
+ <staccato placement="below"/>\r
+ </articulations>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>1</voice>\r
+ <type>eighth</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <notations>\r
+ <slur number="1" placement="above" type="start"/>\r
+ </notations>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>F</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>336</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <notations>\r
+ <slur number="1" type="stop"/>\r
+ </notations>\r
+ </note>\r
+ <backup>\r
+ <duration>1008</duration>\r
+ </backup>\r
+ <note>\r
+ <pitch>\r
+ <step>C</step>\r
+ <octave>3</octave>\r
+ </pitch>\r
+ <duration>336</duration>\r
+ <voice>3</voice>\r
+ <type>quarter</type>\r
+ <stem>down</stem>\r
+ <staff>2</staff>\r
+ </note>\r
+ <note>\r
+ <chord/>\r
+ <pitch>\r
+ <step>E</step>\r
+ <octave>3</octave>\r
+ </pitch>\r
+ <duration>336</duration>\r
+ <voice>3</voice>\r
+ <type>quarter</type>\r
+ <stem>down</stem>\r
+ <staff>2</staff>\r
+ </note>\r
+ <note>\r
+ <chord/>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>3</octave>\r
+ </pitch>\r
+ <duration>336</duration>\r
+ <voice>3</voice>\r
+ <type>quarter</type>\r
+ <stem>down</stem>\r
+ <staff>2</staff>\r
+ </note>\r
+ <note>\r
+ <chord/>\r
+ <pitch>\r
+ <step>C</step>\r
+ <octave>4</octave>\r
+ </pitch>\r
+ <duration>336</duration>\r
+ <voice>3</voice>\r
+ <type>quarter</type>\r
+ <stem>down</stem>\r
+ <staff>2</staff>\r
+ </note>\r
+ <note>\r
+ <rest/>\r
+ <duration>168</duration>\r
+ <voice>3</voice>\r
+ <type>eighth</type>\r
+ <staff>2</staff>\r
+ </note>\r
+ <note>\r
+ <rest/>\r
+ <duration>336</duration>\r
+ <voice>3</voice>\r
+ <type>quarter</type>\r
+ <staff>2</staff>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>3</octave>\r
+ </pitch>\r
+ <duration>168</duration>\r
+ <voice>3</voice>\r
+ <type>eighth</type>\r
+ <stem>down</stem>\r
+ <staff>2</staff>\r
+ <notations>\r
+ <articulations>\r
+ <staccato placement="below"/>\r
+ </articulations>\r
+ </notations>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ </part>\r
+ <!--=========================================================-->\r
+</score-partwise>\r
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Multiple voices per staff
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-09-06</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Two voices share one staff. Each voice is assigned some lyrics.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Triplets, Tuplets
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<software>/usr/bin/vi</software>
<encoding-date>2007-02-02</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1"><part-name>MIDI Track 1</part-name></score-part>
<software>Dolet Light for Finale 2007</software>
<encoding-date>2007-09-14</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Grace notes
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<software>Dolet Light for Finale 2007</software>
<encoding-date>2007-09-16</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">Different kinds of grace notes:
+ acciaccatura, appoggiatura; beamed grace notes; grace notes with
+ accidentals; different durations of the grace notes.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<software>Dolet Light for Finale 2007</software>
<encoding-date>2007-09-16</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">Chords as grace notes.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
+ "http://www.musicxml.org/dtds/partwise.dtd">\r
+<score-partwise>\r
+ <movement-title>Sonata No. 2</movement-title>\r
+ <identification>\r
+ <creator type="composer">Simon Bielman</creator>\r
+ <encoding>\r
+ <software>Finale 2007 for Windows</software>\r
+ <software>Dolet Light for Finale 2007</software>\r
+ <encoding-date>2008-08-20</encoding-date>\r
+ </encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A grace note that appears at the \r
+ measure end (without any steal-from-* attribute set). Some \r
+ applications need to convert this into an after-grace.</miscellaneous-field>\r
+ </miscellaneous>\r
+ </identification>\r
+ <part-list>\r
+ <score-part id="P1">\r
+ <part-name>Piano</part-name>\r
+ <score-instrument id="P1-I1">\r
+ <instrument-name>Acoustic Grand Piano</instrument-name>\r
+ </score-instrument>\r
+ <midi-instrument id="P1-I1">\r
+ <midi-channel>1</midi-channel>\r
+ <midi-program>1</midi-program>\r
+ </midi-instrument>\r
+ </score-part>\r
+ </part-list>\r
+ <!--=========================================================-->\r
+ <part id="P1">\r
+ <measure number="25">\r
+ <attributes>\r
+ <divisions>32</divisions>\r
+ <key>\r
+ <fifths>0</fifths>\r
+ <mode>major</mode>\r
+ </key>\r
+ <time>\r
+ <beats>4</beats>\r
+ <beat-type>4</beat-type>\r
+ </time>\r
+ <clef>\r
+ <sign>G</sign>\r
+ <line>2</line>\r
+ </clef>\r
+ </attributes>\r
+ <note>\r
+ <pitch>\r
+ <step>E</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>64</duration>\r
+ <voice>1</voice>\r
+ <type>half</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>E</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>64</duration>\r
+ <voice>1</voice>\r
+ <type>half</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ </note>\r
+ <note>\r
+ <grace/>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">begin</beam>\r
+ <beam number="2">begin</beam>\r
+ </note>\r
+ <note>\r
+ <grace/>\r
+ <pitch>\r
+ <step>A</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">end</beam>\r
+ <beam number="2">end</beam>\r
+ </note>\r
+ </measure>\r
+ </part>\r
+ <!--=========================================================-->\r
+</score-partwise>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
+ "http://www.musicxml.org/dtds/partwise.dtd">\r
+<score-partwise>\r
+ <movement-title>Sonata No. 2</movement-title>\r
+ <identification>\r
+ <creator type="composer">Simon Bielman</creator>\r
+ <encoding>\r
+ <software>Finale 2007 for Windows</software>\r
+ <software>Dolet Light for Finale 2007</software>\r
+ <encoding-date>2008-08-20</encoding-date>\r
+ </encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Some grace notes and after-graces (indicated by steal-time-previous and steal-time-next).</miscellaneous-field>\r
+ </miscellaneous>\r
+ </identification>\r
+ <part-list>\r
+ <score-part id="P1">\r
+ <part-name>Piano</part-name>\r
+ <score-instrument id="P1-I1">\r
+ <instrument-name>Acoustic Grand Piano</instrument-name>\r
+ </score-instrument>\r
+ <midi-instrument id="P1-I1">\r
+ <midi-channel>1</midi-channel>\r
+ <midi-program>1</midi-program>\r
+ </midi-instrument>\r
+ </score-part>\r
+ </part-list>\r
+ <!--=========================================================-->\r
+ <part id="P1">\r
+ <measure number="25">\r
+ <attributes>\r
+ <divisions>32</divisions>\r
+ <key>\r
+ <fifths>0</fifths>\r
+ <mode>major</mode>\r
+ </key>\r
+ <time>\r
+ <beats>4</beats>\r
+ <beat-type>4</beat-type>\r
+ </time>\r
+ <clef>\r
+ <sign>G</sign>\r
+ <line>2</line>\r
+ </clef>\r
+ </attributes>\r
+ <note>\r
+ <pitch>\r
+ <step>E</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>64</duration>\r
+ <voice>1</voice>\r
+ <type>half</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ </note>\r
+ <note>\r
+ <grace steal-time-previous="20"/>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ </note>\r
+ <note>\r
+ <grace steal-time-next="20"/>\r
+ <pitch>\r
+ <step>A</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ </note>\r
+ <note>\r
+ <grace/>\r
+ <pitch>\r
+ <step>A</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ </note>\r
+ <note>\r
+ <pitch>\r
+ <step>E</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <duration>64</duration>\r
+ <voice>1</voice>\r
+ <type>half</type>\r
+ <stem>down</stem>\r
+ <staff>1</staff>\r
+ </note>\r
+ <note>\r
+ <grace/>\r
+ <pitch>\r
+ <step>G</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">begin</beam>\r
+ <beam number="2">begin</beam>\r
+ </note>\r
+ <note>\r
+ <grace/>\r
+ <pitch>\r
+ <step>A</step>\r
+ <octave>5</octave>\r
+ </pitch>\r
+ <voice>1</voice>\r
+ <type>16th</type>\r
+ <stem>up</stem>\r
+ <staff>1</staff>\r
+ <beam number="1">end</beam>\r
+ <beam number="2">end</beam>\r
+ </note>\r
+ </measure>\r
+ </part>\r
+ <!--=========================================================-->\r
+</score-partwise>\r
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section One voice on multiple staves
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<score-partwise>
<movement-title>Piano staff with dynamics and one-staff clef changes</movement-title>
<identification>
- <creator type="composer">Reinhold Kainhofer</creator>
<rights>Public Domain</rights>
<encoding>
<software>Finale 2007 for Windows</software>
<software>Dolet Light for Finale 2007</software>
<encoding-date>2007-09-18</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">A piano staff with dynamics and
+ clef changes, that apply only to one voice or one staff,
+ respectively.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<software>/usr/bin/vi</software>
<encoding-date>2007-01-22</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<attributes>
<divisions>96</divisions>
<key number="1"><fifths>0</fifths></key>
+ <key number="2"><fifths>2</fifths></key>
<time><beats>4</beats><beat-type>4</beat-type></time>
<staves>2</staves>
<clef number="1"><sign>G</sign><line>2</line></clef>
<staff>1</staff>
</note>
<backup><duration>384</duration></backup>
- <attributes>
- <key number="2"><fifths>2</fifths></key>
- </attributes>
<note>
<pitch><step>B</step><octave>2</octave></pitch>
<duration>384</duration>
<software>/usr/bin/vi</software>
<encoding-date>2007-01-22</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
</identification>
<part-list>
<score-part id="P1">
<score-partwise>\r
<movement-title>Staff change in piano staff</movement-title>\r
<identification>\r
- <creator type="composer">The voice from the second staff has some notes/chords on the first staff</creator>\r
- <creator type="arranger">The final two chords have some notes on the first, some on the second staff</creator>\r
<encoding>\r
<software>Finale 2007 for Windows</software>\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-27</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Staff changes in a piano staff. \r
+ The voice from the second staff has some notes/chords on the first \r
+ staff. The final two chords have some notes on the first, some on \r
+ the second staff.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Percussion
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="1.1">
<movement-title>Percussion Staves</movement-title>
- <identification/>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P1">
<part-name>Timpani</part-name>
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Guitar notation
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-25</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A normal staff with several \r
+ (complex) chord names displayed.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-25</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A staff with chord names and some \r
+ fretboards shown. (In Finaly, only the fretboards were shown!!!)</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-26</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">A staff with chord names and some \r
+ fretboards shown. The fretboards can have an arbitrary number of \r
+ frets/strings, can start at an arbitrary fret and can even contain \r
+ fingering information.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-26</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Chords and fretboards assigned to \r
+ the voices in a multi-voice, multi-staff part. There should be fret \r
+ diagrams above each of the two staves.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
<software>Dolet Light for Finale 2007</software>\r
<encoding-date>2007-10-30</encoding-date>\r
</encoding>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">Some tablature staves, with \r
+ explicit fingering information and different string tunings given \r
+ in the MusicXML file.</miscellaneous-field>\r
+ </miscellaneous>\r
</identification>\r
<part-list>\r
<part-group number="1" type="start">\r
"http://www.musicxml.org/dtds/partwise.dtd">\r
<score-partwise>\r
<movement-title>All MusicXML chord names/types with <root></movement-title>\r
- <identification/>\r
+ <identification>\r
+ <miscellaneous>\r
+ <miscellaneous-field name="description">All chord types defined in \r
+ MusicXML. The staff will only contain one c' note (NO chord) for \r
+ all of them, but the chord names should be properly \r
+ printed.</miscellaneous-field>\r
+ </miscellaneous>\r
+ </identification>\r
<part-list>\r
<score-part id="P1">\r
<part-name>MusicXML Part</part-name>\r
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Figured bass
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="1.1">
<movement-title>Figured Bass</movement-title>
- <identification/>
+ <identification>
+ <miscellaneous>
+ <miscellaneous-field name="description">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!</miscellaneous-field>
+ </miscellaneous>
+ </identification>
<part-list>
<score-part id="P1">
<part-name>MusicXML Part</part-name>
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Page layout
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<software>Dolet Light for PrintMusic 2008</software>
<encoding-date>2007-11-04</encoding-date>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">Several page layout settings:
+ paper size, margins, system margins and distances, different fonts,
+ etc.</miscellaneous-field>
+ </miscellaneous>
</identification>
<defaults>
<scaling>
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Compressed MusicXML files
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
--- /dev/null
+\version "2.10.0"
+
+\header{
+ texidoc = "
+@section Compatibility with broken MusicXML
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
<supports element='accidental' type='no'/>
<supports element='transpose' type='no'/>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">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 </miscellaneous-field>
+ </miscellaneous>
</identification>
<defaults/>
<part-list>
<beam number='2'>continue</beam>
<beam number='3'>continue</beam>
</note>
+ <note dynamics='31'>
+ <pitch>
+ <step>F</step>
+ <alter>1</alter>
+ <octave>6</octave>
+ </pitch>
+ <duration>96</duration>
+ <voice>1</voice>
+ <type>32nd</type>
+ <beam number='1'>continue</beam>
+ </note>
+ <note dynamics='31'>
+ <pitch>
+ <step>F</step>
+ <alter>1</alter>
+ <octave>6</octave>
+ </pitch>
+ <duration>384</duration>
+ <voice>1</voice>
+ <type>eighth</type>
+ </note>
<note dynamics='47'>
<pitch>
<step>G</step>
<duration>96</duration>
<voice>1</voice>
<type>32nd</type>
- <beam number='1'>continue</beam>
- <beam number='2'>continue</beam>
- <beam number='3'>continue</beam>
+ <beam number='2'>begin</beam>
+ <beam number='3'>begin</beam>
</note>
<note dynamics='47'>
<pitch>
<software>Sibelius 5.1</software>
<software>Dolet 3.4 for Sibelius</software>
</encoding>
+ <miscellaneous>
+ <miscellaneous-field name="description">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.</miscellaneous-field>
+ </miscellaneous>
</identification>
<defaults/>
<part-list>
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 $< $@
--- /dev/null
+\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
-\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
+ >>
}
}
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
SCM number_;
SCM alteration_;
+ SCM augmented_;
+ SCM diminished_;
+ SCM augmented_slash_;
Item *figure_item_;
Stream_event *current_event_;
continuation_line_ = 0;
number_ = SCM_EOL;
alteration_ = SCM_EOL;
+ augmented_ = SCM_EOL;
+ diminished_ = SCM_EOL;
+ augmented_slash_ = SCM_EOL;
group_ = 0;
current_event_ = 0;
}
&& 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"));
}
};
{
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_);
}
}
{
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;
}
}
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)
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
{
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 */
-.SUFFIXES: .xml
+.SUFFIXES: .xml .mxl
$(outdir)/%.ly: %.xml
$(PYTHON) $(MUSICXML2LY) -o $@ $<
+
+$(outdir)/%.ly: %.mxl
+ $(PYTHON) $(MUSICXML2LY) -z -o $@ $<
-default: $(OUT_LY_FILES)
+default:
# 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)
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,
# 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 <prefix>/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]
-
-sys.path.insert (0, os.path.join (datadir, 'python'))
-
# Python 2.5 only accepts strings with proper Python internal encoding
# (i.e. ASCII or Unicode) when writing to stdout/stderr, so we must
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):
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):
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)
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)
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:
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):
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 ()
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):
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)
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')
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,
# 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):
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)
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
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
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
;; 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)
error_file_write ('\n'
+ _ ("Error while converting")
+ '\n'
- + _ ("Stopping at last succesful rule")
+ + _ ("Stopping at last successful rule")
+ '\n')
return (last_conversion, str)
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
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
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
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 = {}
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':
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 ():
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
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"
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':
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')
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