]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'lilypond/translation' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond
authorJohn Mandereau <john.mandereau@gmail.com>
Sat, 15 Nov 2008 17:24:22 +0000 (18:24 +0100)
committerJohn Mandereau <john.mandereau@gmail.com>
Sat, 15 Nov 2008 17:24:22 +0000 (18:24 +0100)
178 files changed:
Documentation/de/user/tutorial.itely
Documentation/es/user/spacing.itely
Documentation/es/user/tutorial.itely
Documentation/fr/user/tutorial.itely
Documentation/topdocs/NEWS.tely
Documentation/user/spacing.itely
Documentation/user/tutorial.itely
input/lsr/adjusting-the-shape-of-falls-and-doits.ly
input/lsr/beam-endings-in-score-context.ly [new file with mode: 0644]
input/lsr/beam-grouping-in-7-8-time.ly
input/lsr/beams-across-line-breaks.ly
input/lsr/changing-beam-knee-gap.ly
input/lsr/changing-form-of-multi--measure-rests.ly
input/lsr/changing-text-and-spanner-styles-for-text-dynamics.ly
input/lsr/changing-the-breath-mark-symbol.ly
input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly
input/lsr/changing-the-tuplet-number.ly
input/lsr/compound-time-signatures.ly
input/lsr/contemporary-glissando.ly
input/lsr/controlling-the-vertical-ordering-of-scripts.ly
input/lsr/creating-arpeggios-across-notes-in-different-voices.ly
input/lsr/creating-cross-staff-arpeggios-in-a-piano-staff.ly
input/lsr/creating-cross-staff-arpeggios-in-other-contexts.ly
input/lsr/defining-predefined-fretboards-for-other-instruments.ly
input/lsr/engraving-ties-manually.ly
input/lsr/entering-several-tuplets-using-only-one--times-command.ly
input/lsr/flat-flags-and-beam-nibs.ly
input/lsr/grid-lines--changing-their-appearance.ly
input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
input/lsr/grouping-beats.ly
input/lsr/guitar-strum-rhythms.ly
input/lsr/hiding-the-extender-line-for-text-dynamics.ly
input/lsr/inserting-a-caesura.ly
input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly
input/lsr/permitting-line-breaks-within-beamed-tuplets.ly
input/lsr/positioning-multi--measure-rests.ly
input/lsr/printing-hairpins-using-al-niente-notation.ly
input/lsr/printing-marks-on-every-staff.ly
input/lsr/rhythms.snippet-list
input/lsr/setting-hairpin-behavior-at-bar-lines.ly
input/lsr/setting-the-minimum-length-of-hairpins.ly
input/lsr/specifying-context-with-beatgrouping.ly
input/lsr/sub-dividing-beams.ly
input/lsr/using-beatlength-and-beatgrouping.ly
input/lsr/using-double-slurs-for-legato-chords.ly
input/lsr/using-ties-with-arpeggios.ly
input/lsr/vertically-aligned-dynamics-and-textscripts.ly
input/regression/figured-bass-continuation-modifiers.ly [new file with mode: 0644]
input/regression/musicxml/00-Basics.ily [new file with mode: 0644]
input/regression/musicxml/00a-Basics-Pitches.xml
input/regression/musicxml/00b-Basics-Intervals.xml
input/regression/musicxml/00c-Basics-Durations.xml
input/regression/musicxml/00d-Basics-RestDurations.xml
input/regression/musicxml/00e-Basics-PitchedRests-PJB.xml
input/regression/musicxml/00f-Basics-Clefs.xml
input/regression/musicxml/00g-Basics-Keys.xml
input/regression/musicxml/00h-Basics-TimeSignatures.xml
input/regression/musicxml/00i-Basics-NoKeyOrClef.xml
input/regression/musicxml/00j-Basics-NoTime-PJB.xml
input/regression/musicxml/00k-Basics-Backup.xml
input/regression/musicxml/00l-Basics-MultiMeasureRests.xml
input/regression/musicxml/00l-Basics-Tie-PJB.xml
input/regression/musicxml/00m-MultimeasureRests-TimeSignatures.xml [new file with mode: 0644]
input/regression/musicxml/01-Chords.ily [new file with mode: 0644]
input/regression/musicxml/01a-Chord-Rosegarden.xml
input/regression/musicxml/01b-Chords-Rosegarden.xml
input/regression/musicxml/01c-Chords-Rosegarden.xml
input/regression/musicxml/01d-Chords-SchubertStabatMater.xml
input/regression/musicxml/01e-Chords-PickupMeasures.xml
input/regression/musicxml/01f-Chord-ElementInBetween.xml [new file with mode: 0644]
input/regression/musicxml/02-Notations-Articulations.ily [new file with mode: 0644]
input/regression/musicxml/02a-Notations-MusicXML.xml
input/regression/musicxml/02b-Articulations-Texts-PJB.xml
input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml
input/regression/musicxml/02d-Arpeggio.xml
input/regression/musicxml/03-Directions.ily [new file with mode: 0644]
input/regression/musicxml/03a-Directions-MusicXML.xml
input/regression/musicxml/03b-AccordionRegistrations-MusicXML.xml
input/regression/musicxml/03c-MetronomeMarks.xml
input/regression/musicxml/04-Spanners.ily [new file with mode: 0644]
input/regression/musicxml/04a-Spanners-Finale.xml
input/regression/musicxml/04b-Glissando.xml
input/regression/musicxml/04c-Spanners-Noteedit.xml
input/regression/musicxml/04d-Spanners-JScore.xml
input/regression/musicxml/04e-OctaveShifts-Finale.xml
input/regression/musicxml/04f-Slurs.xml [new file with mode: 0644]
input/regression/musicxml/04g-Trill-EndingOnGraceNote-Finale.xml [new file with mode: 0644]
input/regression/musicxml/05-Header.ily [new file with mode: 0644]
input/regression/musicxml/05a-HeaderQuotes-Finale.xml
input/regression/musicxml/06-Lyrics.ily [new file with mode: 0644]
input/regression/musicxml/06a-Lyrics-Finale.xml
input/regression/musicxml/06b-MultipleLyrics-Finale.xml
input/regression/musicxml/06c-Lyrics-Pianostaff-Finale.xml
input/regression/musicxml/06d-Lyrics-Melisma-Finale.xml
input/regression/musicxml/06e-Lyrics-Chords-Finale.xml
input/regression/musicxml/06f-Lyrics-GracedNotes-Finale.xml
input/regression/musicxml/06g-Lyrics-NameNumber.xml
input/regression/musicxml/06h-Lyrics-BeamsMelismata.xml
input/regression/musicxml/08-Multiple-Parts.ily [new file with mode: 0644]
input/regression/musicxml/08a-Partorder-Rosegarden.xml
input/regression/musicxml/08b-StaffGroups-Finale.xml
input/regression/musicxml/08c-More-than-10-parts-Rosegarden.xml
input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml
input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml
input/regression/musicxml/08f-PianoStaff-PJB.xml
input/regression/musicxml/08g-OverlappingPartGroups-Finale.xml
input/regression/musicxml/09-Measures.ily [new file with mode: 0644]
input/regression/musicxml/09a-SimpleRepeat-Finale.xml
input/regression/musicxml/09b-RepeatWithAlternatives-Finale.xml
input/regression/musicxml/09c-Barlines-Finale.xml
input/regression/musicxml/09d-RepeatMultipleTimes-Finale.xml
input/regression/musicxml/09e-Alternatives-Finale.xml
input/regression/musicxml/09f-Repeats-Finale.xml
input/regression/musicxml/09g-Endings-Finale.xml
input/regression/musicxml/09h-RepeatsNoEndBar-Finale.xml
input/regression/musicxml/09i-MidmeasureBarline.xml
input/regression/musicxml/09j-Midmeasure-Clef-Finale.xml
input/regression/musicxml/09k-Upbeats-ImplicitMeasures-Finale.xml
input/regression/musicxml/09l-PickupMeasure-SecondVoiceMessup.xml
input/regression/musicxml/09m-MultiVoice-MidMeasureClefChange-Finale.xml [new file with mode: 0644]
input/regression/musicxml/10-Multiple-Voices.ily [new file with mode: 0644]
input/regression/musicxml/10a-TwoVoicesOnStaff-Finale.xml
input/regression/musicxml/12-Tuplets.ily [new file with mode: 0644]
input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml
input/regression/musicxml/12b-Tuplets-Finale.xml
input/regression/musicxml/13-Grace-Notes.ily [new file with mode: 0644]
input/regression/musicxml/13a-GraceNotes-Finale.xml
input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml
input/regression/musicxml/13c-GraceNote-MeasureEnd-Finale.xml [new file with mode: 0644]
input/regression/musicxml/13d-AfterGrace.xml [new file with mode: 0644]
input/regression/musicxml/14-Multi-Staff-Parts.ily [new file with mode: 0644]
input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml
input/regression/musicxml/14b-DifferentKeys-PJB.xml
input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml
input/regression/musicxml/14c-StaffChange-Finale.xml
input/regression/musicxml/15-Percussion.ily [new file with mode: 0644]
input/regression/musicxml/15a-Percussion-Finale.xml
input/regression/musicxml/17-Guitar.ily [new file with mode: 0644]
input/regression/musicxml/17a-Chords-Finale.xml
input/regression/musicxml/17b-Fretboards-Finale.xml
input/regression/musicxml/17c-ChordsFrets-Finale.xml
input/regression/musicxml/17d-ChordsFretsOnMultistaff-Finale.xml
input/regression/musicxml/17e-TabStaves-Finale.xml
input/regression/musicxml/17f-AllChordTypes.xml
input/regression/musicxml/18-Figured-Bass.ily [new file with mode: 0644]
input/regression/musicxml/18a-FiguredBass.xml
input/regression/musicxml/19-Page-Layout.ily [new file with mode: 0644]
input/regression/musicxml/19a-PageLayout-PrintMusic.xml
input/regression/musicxml/20-Compressed-MusicXML.ily [new file with mode: 0644]
input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl [deleted file]
input/regression/musicxml/20a-Compressed-MusicXML.mxl [new file with mode: 0644]
input/regression/musicxml/99-Compatibility.ily [new file with mode: 0644]
input/regression/musicxml/99a-Sibelius5-IgnoreBeaming.xml
input/regression/musicxml/99b-Lyrics-BeamsMelismata-IgnoreBeams.xml
input/regression/musicxml/GNUmakefile
input/regression/ragged-bottom-one-page.ly [new file with mode: 0644]
input/regression/repeat-percent-count-visibility.ly [new file with mode: 0644]
input/regression/system-separator.ly
lily/GNUmakefile
lily/figured-bass-engraver.cc
lily/optimal-page-breaking.cc
lily/page-spacing.cc
lily/percent-repeat-engraver.cc
ly/engraver-init.ly
make/musicxml-rules.make
make/musicxml-targets.make
make/musicxml-vars.make
python/convertrules.py
python/lilylib.py
python/musicexp.py
python/musicxml.py
scm/define-context-properties.scm
scm/define-grobs.scm
scm/output-lib.scm
scm/page.scm
scripts/convert-ly.py
scripts/musicxml2ly.py
stepmake/aclocal.m4

index 6ddef88ac02d3654f3268ee17034a3969bb41f31..ab89f2df116e0891455abe221d815b5a345ffa7a 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 9c728939dbd36dc81bf0afb29bc5fe22b66d675c
+    Translation of GIT committish: f413550b658b43fbea690fc060f872bce6bbc885
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -820,15 +820,15 @@ d cis fis
 hat keine der Noten ein Versetzungszeichen, trotzdem muss im Quelltext
 das @q{is} für @code{cis} und @code{fis} notiert werden.
 
-Der Code @q{e} heißt also nicht: @qq{Zeichne einen schwarzen Punkt
-auf die erste Linie des Systems.} Im Gegenteil, er heißt vielmehr:
- @qq{Hier soll eine Note mit der Tonhöhe E gesetzt werden.}
+Der Code @q{b} heißt also nicht: @qq{Zeichne einen schwarzen Punkt
+auf die Mittellinie des Systems.} Im Gegenteil, er heißt vielmehr:
+ @qq{Hier soll eine Note mit der Tonhöhe B gesetzt werden.}
 In der Tonart As-Dur @emph{bekommt} sie ein Versetzungszeichen:
 
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote,relative=2]
 \key aes \major
-e
+b
 @end lilypond
 
 Alle diese Versetzungszeichen ausdrücklich zu schreiben, bedeutet vielleicht
index 3cb339cfb1493eb7597d1cb4ff002f7c553dfdf0..07cf5d49ebc5a6d39b69e878e27f4a242032d835 100644 (file)
@@ -7,6 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.11.64"
 
 @node Spacing issues
 @chapter Spacing issues
@@ -519,8 +520,8 @@ longitud horizontal natural.  Predeterminado: @code{##f}.
 Si la partitura sólo tiene un sistema, el valor predeterminado es
 @code{##t}.
 
-@item systemSeparatorMarkup
-@funindex systemSeparatorMarkup
+@item system-separator-markup
+@funindex system-separator-markup
 
 Objeto de marcado que se inserta entre los sistemas.  Se suele usar
 para partituras orquestales.  Predeterminado: sin establecer.
@@ -535,7 +536,7 @@ valor predeterminado apropiado, por ejemplo
     \relative { c1 \break c1 }
   }
   \paper {
-    systemSeparatorMarkup = \slashSeparator
+    system-separator-markup = \slashSeparator
   }
 }
 @end lilypond
index d47b0228778adf1340cc8af96f961cd2c712aebf..cbc7e83f46e9d5dbfee92651c256a1242661e7f2 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 470afe4ab29825194827f7dfcf031addb68771ce
+    Translation of GIT committish: f413550b658b43fbea690fc060f872bce6bbc885
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -815,14 +815,14 @@ d cis fis
 ninguna nota lleva una alteración impresa, pero de todas formas usted
 debe añadir el @code{is} a @code{cis} y a @code{fis}.
 
-El texto @code{e} no significa @qq{imprimir una bolita negra en la
-primera línea del pentagrama.}  Más bien significa: @qq{hay una nota
-Mi natural.}  En la tonalidad de La bemol mayor, @emph{lleva} una
+El texto @code{b} no significa @qq{imprimir una bolita negra en la
+tercera línea del pentagrama.}  Más bien significa: @qq{hay una nota
+Si natural.}  En la tonalidad de La bemol mayor, @emph{lleva} una
 alteración accidental:
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote,relative=2]
 \key aes \major
-e
+b
 @end lilypond
 
 Poner todas las alteraciones de forma explícita puede que requiera
index 60ede05de9e40b0a259dc4c063c4e339b44632a6..a4dd9dc1beac9b074cbf696a63e3bc13c9c5558a 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-   Translation of GIT committish: 9c728939dbd36dc81bf0afb29bc5fe22b66d675c
+   Translation of GIT committish: f413550b658b43fbea690fc060f872bce6bbc885
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  See TRANSLATION for details.
@@ -808,14 +808,14 @@ d cis fis
 aucune note n'a d'altération accidentelle, et pourtant vous devrez
 entrer le @code{is} pour les notes @code{cis} et @code{fis}.
 
-Le code @code{e} ne veut pas dire @qq{Imprimez-moi un point noir sur
-la première ligne de la portée.}  Cela signifie plutôt : @qq{Ici se
-trouve une note dont la hauteur est un mi naturel.}  Avec une armure
-de la bémol majeur, ce mi est flanqué d'un bécarre accidentel :
+Le code @code{b} ne veut pas dire @qq{Imprimez-moi un point noir sur
+la troisième ligne de la portée.}  Cela signifie plutôt : @qq{Ici se
+trouve une note dont la hauteur est un si naturel.}  Avec une armure
+de la bémol majeur, ce si est flanqué d'un bécarre accidentel :
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote,relative=2]
 \key aes \major
-e
+b
 @end lilypond
 
 Ajouter explicitement toutes les altérations demande un peu plus
index e6b2866b5d12500893c406c50242425dfa1a4c08..6de795eb344f71c8fed147fe28a2a0d820cb2b0c 100644 (file)
@@ -224,6 +224,7 @@ scripts.caesura -> scripts.caesura.curved
 \hcenter -> \center-align
 printallheaders -> print-all-headers
 \bigger -> \larger (already existing command)
+systemSeparatorMarkup -> system-separator-markup
 @end example
 
 @noindent
index c4e303010e86d4fbbe976b90a19c2b8ea260739e..9ade001b4e56676b2b55b162997c931da5be3164 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.11.64"
 
 @ignore
 GDP TODO list
@@ -561,8 +561,8 @@ systems end at their natural horizontal length.  Default:
 
 If the score has only one system, the default value is @code{##t}.
 
-@item systemSeparatorMarkup
-@funindex systemSeparatorMarkup
+@item system-separator-markup
+@funindex system-separator-markup
 
 A markup object that is inserted between systems.  This is often
 used for orchestral scores.  Default: unset.
@@ -577,7 +577,7 @@ default,  for example
     \relative { c1 \break c1 }
   }
   \paper {
-    systemSeparatorMarkup = \slashSeparator
+    system-separator-markup = \slashSeparator
   }
 }
 @end lilypond
index b755efdcb7235737cdd5f4e263e2a3a1183390b8..5f2a290c128a3cc4f92a0ca2fd8df9cfe14ae8ba 100644 (file)
@@ -758,14 +758,14 @@ d cis fis
 No note has a printed accidental, but you must still add
 @code{is} and type @code{cis} and @code{fis} in the input file.
 
-The code @code{e} does not mean @qq{print a black dot just on
-the first line of the staff.}  Rather, it means @qq{there is a
-note with pitch E-natural.}  In the key of A-flat major, it
+The code @code{b} does not mean @qq{print a black dot just on
+the middle line of the staff.}  Rather, it means @qq{there is a
+note with pitch B-natural.}  In the key of A-flat major, it
 @emph{does} get an accidental:
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote,relative=2]
 \key aes \major
-e
+b
 @end lilypond
 
 Adding all alterations explicitly might require a little more
index fd0d2be34fc352640b9aac5161b795d97713c596..785ca355e057e6c9d89e3777ca35dd194dc1c4fc 100644 (file)
@@ -12,6 +12,14 @@ caídas y subidas de tono («falls» y Â«doits»).
 
 "
   doctitlees = "Ajustar la forma de las subidas y caídas de tono"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Die @code{shortest-duration-space}-Eigenschaft kann verändert werden, um
+das Aussehen von unbestimmten Glissandi anzupassen.
+
+"
+  doctitlede = "Das Aussehen von unbestimmten Glissandi anpassen"
 
   texidoc = "
 The @code{shortest-duration-space} property may have to be tweaked to
diff --git a/input/lsr/beam-endings-in-score-context.ly b/input/lsr/beam-endings-in-score-context.ly
new file mode 100644 (file)
index 0000000..f9d9e04
--- /dev/null
@@ -0,0 +1,49 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.62"
+
+\header {
+  lsrtags = "rhythms"
+
+  texidoc = "
+Beam-ending rules specified in the @code{Score} context apply to all
+staves, but can be modified at both @code{Staff} and @code{Voice}
+levels: 
+
+"
+  doctitle = "Beam endings in Score context"
+} % begin verbatim
+
+\relative c'' {
+  \time 5/4
+  % Set default beaming for all staves
+  #(score-override-auto-beam-setting '(end * * 5 4) 3 8)
+  #(score-override-auto-beam-setting '(end * * 5 4) 7 8)
+  <<
+    \new Staff {
+      c8 c c c c c c c c c
+    }
+    \new Staff {
+      % Modify beaming for just this staff
+      #(override-auto-beam-setting '(end * * 5 4) 6 8 'Staff)
+      #(revert-auto-beam-setting '(end * * 5 4) 7 8 'Staff)
+      c8 c c c c c c c c c
+    }
+    \new Staff {
+      % Inherit beaming from Score context
+      <<
+        {
+          \voiceOne
+          c8 c c c c c c c c c
+        }
+        % Modify beaming for this voice only
+        \new Voice {
+          \voiceTwo
+          #(override-auto-beam-setting '(end * * 5 4) 6 8)
+          #(revert-auto-beam-setting '(end * * 5 4) 7 8)
+          a8 a a a a a a a a a
+        }
+      >>
+    }
+  >>
+}
index 98fa4b685876c8bfd1969859443a7f63d3873656..72c70e2f5483f0ee514396b0d0b4fac8aafc849a 100644 (file)
@@ -14,6 +14,16 @@ compás de 7/8, especificamos los finales de barra en 2/8 y 5/8:
 
 "
   doctitlees = "Agrupamiento de las barras en el compás de 7/8"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Es gibt keine automatischen Balkengruppen für 7/8-Takte.  Wenn diese
+Taktart benötigt wird, müssen die Gruppierungen definiert werden.  Um
+beispielsweise alle Noten in 2/8-3/8-2/8 aufzuteilen, müssen Balkenenden
+für 2/8 und 5/8 definiert werden:
+
+"
+  doctitlede = "Balkengruppen für 7/8-Takte"
 
   texidoc = "
 There are no default automatic beam groupings specified for 7/8 time,
index da954b11f23827a13ca864f068f5e7380922501b..c27ff1b953cd2c4453abc577e0b1921ea1760f59 100644 (file)
@@ -12,6 +12,15 @@ comportamiento como se muestra aquí:
 
 "
   doctitle = "Barras que atraviesan saltos de línea"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+  
+texidocde = "
+Zeilenumbrüche sind normalerweise während Balken verboten.  Das kann geändert
+werden.
+
+"
+  doctitlede = "Balken Ã¼ber Zeilenumbrüche"
 
   texidoc = "
 Line breaks are normally forbidden when beams cross bar lines. This
index ca72dc89954c6b14ae9f50c444ec4aca9459a83b..c3ca7244b294d4f1f26189c0e08a52c46101e4db 100644 (file)
@@ -17,6 +17,19 @@ establecido a 5.5 espacios de pentagrama.
 
 "
   doctitlees = "Cambiar el salto de las barras en Ã¡ngulo"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Balken mit Hälsen in unterschiedliche Richtungen werden automatisch
+erstellt, wenn ein großer Sprung zwischen Tonhöhen gefunden wird.  Dieses
+Verhalten kann durch die @code{auto-knee-gap}-Eigenschaft beeinflusst
+werden.  Ein derartiger Knie-Balken wird erstellt, wenn der Abstand größer
+ist als der Wert von @code{auto-knee-gap} plus der Dicke des Balkens
+(was von der Notendauer und der Neigung des Balkens abhängt).  Der
+Standardwert von @code{auto-knee-gap} ist 5.5 Notensystemabstände.
+
+"
+  doctitlede = "Balken für weit außeinander liegende Noten Ã¤ndern"
 
   texidoc = "
 Kneed beams are inserted automatically when a large gap is detected
index e2f66c384c904a57ccad8d2e585feed34f95a8e2..0b3ddb0f2369a22b7ba94aac7fadfa098e5faf42 100644 (file)
@@ -11,6 +11,16 @@ muestra una barra normal.  Este número predeterminado de diez se
 puede cambiar sobreescribiendo la propiedad @code{expand-limit}:
 
 "
+
+texidocde = "
+Wenn zehn oder weniger Pausentakte vorkommen, wird eine Reihe von Longa-
+und Brevispausen (auch Kirchenpausen genannt) gesetzt, bei mehr Takten
+wird eine Line mit der Taktanzahl ausgegeben.  Der vorgegebene Wert von
+zehn kann geändert werden, indem man die @code{expand-limit}-Eigenschaft
+setzt:
+"
+  doctitlede = "Die Erscheinung von Pausentakten Ã¤ndern"
+
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
 If there are ten or fewer measures of rests, a series of longa
index f8fe762258ad1a5d806fe18284da363a22a455dc..9093d21fa8d68fb935004f2fef6e3fe0aa0bb0e6 100644 (file)
@@ -15,6 +15,18 @@ valores posibles se encuentran @code{'line} (línea),
 
 "
   doctitlees = "Cambiar el texto y los estilos de objeto de extensión para las indicaciones dinámicas textuales"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Der Text, der für Crescendo und Decrescendo gestzt wird, kann geändert
+werden, indem man die Eigenschaften @code{crescendoText} und
+@code{decrescendoText} verändert.  Der Stil des Streckers kann auch
+geändert werden, indem die @code{'style}-Eigenschaft des
+@code{DynamicTextSpanner} beeinflusst wird.  Der Standardwert ist
+@code{'hairpin}, ander Möglichkeiten sind @code{'line}, @code{'dashed-line}
+und @code{'dotted-line}:
+"
+  doctitlede = "Text und Strecker-Stile für Dynamik-Texte Ã¤ndern"
 
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
index efb54b8966923179d3cc1a97a0932fce9e053edf..a04b0b5d7d4ad0a31c740e02b7cdc441ed5739cd 100644 (file)
@@ -12,6 +12,15 @@ sobreescribiendo la proopiedad de texto del objeto de presentación
 
 "
   doctitlees = "Cambiar el símbolo de la marca de respiración"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+  texidocde = "
+Das Schriftzeichen für das Atemzeichen kann verändert werden, indem
+die Text-Eigenschaft des @code{BreathingSign}-Layoutobjekts mit einer
+beliebigen Textbeschriftung definiert wird.
+
+"
+  doctitlede = "Das Atemzeichen-Symbol verändern"
 
   texidoc = "
 The glyph of the breath mark can be tuned by overriding the text
index 48931a5d558b86bfcf507bd8c9242007303ee9c3..d6c254dc84784bdbfd434ddbb1f8a6d7fe39bf28 100644 (file)
@@ -5,6 +5,17 @@
 \header {
   lsrtags = "rhythms"
 
+  texidoces = "
+La instrucción @code{\time} establece las propiedades
+@code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping} y
+@code{measureLength} en el contexto @code{Timing}, que normalmente
+tiene el alias @code{Score}.  La modificación del valor de
+@code{timeSignatureFraction} hace que se imprima la nueva indicación
+de compás sin que cambie ninguna de las demás propiedades:
+
+"
+  doctitlees = "Cambio de compás sin afectar al barrado"
+
   texidoc = "
 The @code{\\time} command sets the properties
 @code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping}
index 6638f500a6ac70b333b77a7cf4c4a02fc331ce9c..ef7f16734ada9e49a75b450aedee8cfd404e811f 100644 (file)
@@ -16,6 +16,7 @@ del grupo, o eliminar el número.
 
 "
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
 texidocde = "
 Standardmäßig wird nur der Zähler des N-tolen-Bruchs Ã¼ber der Klammer
 dargestellt, wie er dem @code{\\times}-Befehl Ã¼bergeben wird.
index e9ab5202cb283e374965a63a0cecd35ba34e4aa5..35d380ff56b6bd95e3ea601313452658825e5814 100644 (file)
@@ -17,6 +17,18 @@ gráficas de la agrupación de compases; véase el fragmento de código
 apropiado en la base de datos).
 
 "
+
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Ungerade Taktarten werden (wie etwa \"5/8\") werden oft als zusammengesetzte
+Taktarten interpretiert (bspw. \"3/8 + 2/8\"), in welchen zwei oder mehr
+Teiltakte unterschieden werden.  LilyPond kann derartige Noten produzieren,
+indem entsprechende Taktarten gesetzt werden und die automatische
+Bebalkung angepasst wird.
+
+"
+  doctitlede = "Zusammengesetzte Taktarten"
+
   texidoc = "
 Odd 20th century time signatures (such as \"5/8\") can often be played
 as compound time signatures (e.g. \"3/8 + 2/8\"), which combine two or
index f326a0b7bf699ef212a678c2921994ac0453d97e..15dcc1d5a3da8d5177a2384a6126fed71890ce91 100644 (file)
@@ -11,6 +11,14 @@ utilizando una nota oculta y temporalización de cadenza.
 
 "
   doctitlees = "Glissando contemporáneo"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Ein modernes Glissando ohne eine Endnote kann gesetzt werden, indem
+eine Kadenz eingesetzt wird und die Endnote unsichtbar gemacht wird.
+
+"
+  doctitlede = "Moderne Glissandi"
 
   texidoc = "
 A contemporary glissando without a final note can be typeset using a
index a33f84bb293f597f099280017a4ed7f8c1371430..fb506cef5bba5a239c66a43ba826b0580e500ea8 100644 (file)
@@ -19,6 +19,21 @@ lugar.
 
 "
   doctitlees = "Controlar la ordenación vertical de las inscripciones"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Die vertikale Anordnung von Beschriftungen wird mit der
+@code{'script-priority}-Eigenschaft kontrolliert.  Um so kleiner die
+Zahl, umso näher wird die Beschriftung in Bezug auf die Note gesetzt.  In
+diesem Beispiel hat das @code{TextScript}-Objekt (das Kreuz) zuerst
+die niedrigste Priorität, wird also auch am niedrigsten in dem ersten
+Beispiel gesetzt.  Im zweiten Fall hat der Praller (das @code{Script}) 
+die niedrigste Priorität, darum wird er am nächsten zum System gesetzt.
+Wenn zwei Objekte die gleiche Priorität haben, wird ihre Reihenfolge
+anhand ihres Auftretens in der Quelldatei entschieden.
+
+"
+  doctitlede = "Die vertikale Anordnung von Beschriftungen kontrollieren"
 
   texidoc = "
 The vertical ordering of scripts is controlled with the
index 3cde9879302232c7ed9facbbf184980198bcf961..d0460e2e68d77a9bc5eac3ade3f89aec0078b45f 100644 (file)
@@ -13,6 +13,15 @@ voces que están sobre el mismo pentagrama si el grabador
 
 "
   doctitlees = "Crear arpegios entre notas de voces distintas"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Ein Arpeggio kann zwischen Noten aus unterschidlichen Stimmen auf demselben
+System gezogen werden, wenn der @code{Span_arpeggio_engraver} in den 
+@code{Staff}-Kontext verschoben wird:
+
+"
+  doctitlede = "Arpeggios zwischen unterschiedlichen Stimmen erzeugen"
 
   texidoc = "
 An arpeggio can be drawn across notes in different voices on the same
index 5690d8a066753c5cf213d5b369169771f351ef3b..9259c26867525396b2d7b3c765ca85eb4877c2ae 100644 (file)
@@ -12,6 +12,15 @@ cruce entre los pentagramas ajustando la propiedad
  
 "
   doctitlees = "Crear arpegios que se cruzan entre pentagramas dentro de un sistema de piano"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Arpeggio Ã¼ber mehrere Systeme können in anderen Kontexten als dem
+@code{PianoStaff} erstellt werden, wenn der @code{Span_arpeggio_engraver}
+in den @code{Score}-Kontext eingefügt wird.
+
+"
+  doctitlede = "Arpeggio Ã¼ber mehrere Systeme in anderen Kontexten"
 
   texidoc = "
 In a @code{PianoStaff}, it is possible to let an arpeggio cross between
index 4ad262fe54c14877b7bb8d02d45dc282610ec5d6..fdb326a137795d04eb27be9fe95775b6a908c482 100644 (file)
@@ -12,6 +12,16 @@ contextos distintos a @code{PianoStaff} si se incluye el grabador
 
 "
   doctitlees = "Creación de arpegios que se cruzan entre pentagramas dentro de otros contextos"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+In einem Klaviersystem (@code{PianoStaff}) ist es möglich, ein Arpeggio
+zwischen beiden Systemen zu verbinden, indem die
+@code{PianoStaff.connectArpeggios}-Eigenschaft gesetzt wird.
+
+"
+  doctitlede = "Arpeggio zwischen Systemen in einem Klaviersystem erstellen"
 
   texidoc = "
 Cross-staff arpeggios can be created in contexts other than
index da647564c04639552140db49f87d9c0c1e86a287..7a3d0ee7cc5feb3b7254997981c1aecd4a7a68de 100644 (file)
@@ -2,6 +2,24 @@
 %% This file is in the public domain.
 \version "2.11.62"
 \header {
+  texidoces = "
+
+Se pueden añadir diagramas de posiciones predefinidas para
+instrumentos nuevos además de los estándar que se usan para la
+guitarra.  Este archivo muestra cómo se hace, definiendo una afinación
+nueva y unas cuantas posiciones para el cuatro venezolano.
+
+Este archivo también muestra cómo se pueden incluir las digitaciones
+en los acordes que se usan como puntos de referencia para la búsqueda
+de acordes en la tabla, y mostrarse en el diagrama de posiciones y la
+tablatura @code{TabStaff}, pero no en la música.
+
+Estas posiciones no se pueden transportar porque contienen información
+de las cuerdas.  Hay planes para corregir esto en un futuro.
+
+"
+  doctitlees = "Definición de posiciones predefinidas para otros instrumentos"
+
   lsrtags = "fretted-strings"
   texidoc = "Predefined fret diagrams can be added for new instruments
 in addition to the standards used for guitar.  This file shows how
index badd68020799a36836cef04fa6ed2e31d910627f..e8ba3f7743e0242e60849408ff3c02a17db0bed3 100644 (file)
@@ -14,6 +14,18 @@ espacios de pentagrama, y el segundo número indica la dirección (1 =
 hacia arriba, -1 = hacia abajo).
 
 "
+
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Ãœberbindungen können manuell gesetzt werden, indem man die
+@code{tie-configuration}-Eigenschaft des @code{TieColumn}-Objekts
+beeinflusst.  Die erste Zahl zeigt den Abstand von der Mitte in
+Notensystemabständen an, die zweite Zahl zeigt die Richtung an (1 = nach oben,
+-1 = nach unten).
+
+"
+  doctitlede = "Bindebögen manuell setzen"
+
   texidoc = "
 Ties may be engraved manually by changing the @code{tie-configuration}
 property of the @code{TieColumn} object. The first number indicates the
index 56dd6ee9f8a2af175bd94f5c5fda3f97c104f38b..ff96bb4f83df0000328c1ca26db5c1bcf03ec79d 100644 (file)
@@ -22,6 +22,7 @@ Para ver más inforamción sobre @code{make-moment}, véase
 
 "
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
   texidocde = "
 Die Eigenschaft @code{tupletSpannerDuration} bestimmt, wie lange jede
 der N-tolen innerhalb der Klammern nach dem @code{\\times}-Befehl
index a5ca3e0322515fa7792109072e734ca60610950e..1929fa2121d4399fb8746544ce978e0a36d88ed7 100644 (file)
@@ -5,6 +5,57 @@
 \header {
   lsrtags = "rhythms"
 
+  texidoces = "
+ Son posibles tanto los corchetes rectos sobre notas sueltas como
+extremos de barra sueltos en figuras unidas, con una combinación de
+@code{stemLeftBeamCount}, @code{stemRightBeamCount} e indicadores de
+barra @code{[ ]} emparejados.
+
+
+
+
+Para corchetes rectos que apunten a la derecha sobre notas sueltas,
+use indicadores de barra emparejados @code{[ ]} y establezca
+@code{stemLeftBeamCount} a cero (véase el ejemplo 1).
+
+
+
+
+Para corchetes rectos que apunten a la izquierda, establezca en su
+lugar @code{stemRightBeamCount} (ejemplo 2).
+
+
+
+
+Para extremos sueltos que apunten a la derecha al final de un conjunto
+de notas unidas, establezca @code{stemRightBeamCount} a un valor
+positivo.  Y para extremos sueltos que apunten a la izquierda al
+principio de un conjunto de notas unidas, establezca
+@code{stemLeftBeamCount} en su lugar (ejemplo 3).
+
+
+
+
+A veces, para una nota suelta rodeada de silencios tiene sentido que
+lleve los dos extremos sueltos del corchete plano, apuntando a derecha
+e izquierda.  Hágalo solamente con indicadores de barra emparejados
+@code{[ ]} (ejemplo 4).
+
+
+
+
+(Observe que @code{\\set stemLeftBeamCount} siempre equivale a
+@code{\\once \\set}.  En otras palabras, los ajustes de la cantidad de
+barras no se recuerdan, y por ello el par de corchetes planos
+aplicados a la nota Do semicorchea @code{c'16 [ ]} del Ãºltimo ejemplo
+no tiene nada que ver con el @code{\\set} de dos notas por detrás.)
+
+
+
+
+"
+  doctitlees = "Corchetes rectos y extremos de barra sueltos"
+
   texidoc = "
  Flat flags on lone notes and beam nibs at the ends of beamed figures
 are both possible with a combination of @code{stemLeftBeamCount}, 
index 2c204b2d4441f7d35db3730bc5a752f52c7feccf..ac360817e74bfa559fb4fb33b4440251b6843ca4 100644 (file)
@@ -20,43 +20,44 @@ properties.
   doctitle = "Grid lines: changing their appearance"
 } % begin verbatim
 
-\layout {
- \context {
-   \Staff
-   % set up grids
-   \consists "Grid_point_engraver"
-   % set the grid interval to one quarter note
-   gridInterval = #(ly:make-moment 1 4)
-  }
-}
-
-\new Score \with {
- \consists "Grid_line_span_engraver"
- % this moves them to the right half a staff space
- \override NoteColumn #'X-offset = #-0.5
-}
-
-\new ChoirStaff <<
-  \new Staff {
-    \relative c'' {
-      \stemUp
-      c'4. d8 e8 f g4
+\score {
+  \new ChoirStaff <<
+    \new Staff {
+      \relative c'' {
+        \stemUp
+        c'4. d8 e8 f g4
+      }
     }
-  }
-  \new Staff {
-    \relative c {
-      % this moves them up one staff space from the default position
-      \override Score.GridLine #'extra-offset = #'(0.0 . 1.0)
-      \stemDown
-      \clef bass
-      \once \override Score.GridLine #'thickness = #5.0
-      c4
-      \once \override Score.GridLine #'thickness = #1.0
-      g'
-      \once \override Score.GridLine #'thickness = #3.0
-      f
-      \once \override Score.GridLine #'thickness = #5.0
-      e
+    \new Staff {
+      \relative c {
+        % this moves them up one staff space from the default position
+        \override Score.GridLine #'extra-offset = #'(0.0 . 1.0)
+        \stemDown
+        \clef bass
+        \once \override Score.GridLine #'thickness = #5.0
+        c4
+        \once \override Score.GridLine #'thickness = #1.0
+        g'4
+        \once \override Score.GridLine #'thickness = #3.0
+        f4
+        \once \override Score.GridLine #'thickness = #5.0
+        e4
+      }
+    }
+  >>
+  \layout {
+    \context {
+      \Staff
+      % set up grids
+      \consists "Grid_point_engraver"
+      % set the grid interval to one quarter note
+      gridInterval = #(ly:make-moment 1 4)
+    }
+    \context {
+      \Score
+      \consists "Grid_line_span_engraver"
+      % this moves them to the right half a staff space
+      \override NoteColumn #'X-offset = #-0.5
     }
   }
->>
+}
index 1f547ff678bcec8a7d056d19c4b111334162d20a..04cb25130da62f51459068693cf6c3f18d82c761 100644 (file)
@@ -15,7 +15,7 @@ las líneas sean más cortas, como en este fragmento de código.
   doctitlees = "Líneas de rejilla: destacar ritmos y la relación temporal entre notas"
 
   texidoc = "
-Regular vertical lines can be drawn between staves to show notes
+Regular vertical lines can be drawn between staves to show note
 synchronization; however, in case of monophonic music, you may want to
 make the second stave invisible, and make the lines shorter like in
 this snippet.
@@ -24,62 +24,50 @@ this snippet.
   doctitle = "Grid lines: emphasizing rhythms and notes synchronization"
 } % begin verbatim
 
-%% sets of grid
-\layout {
- \context {
-   \Staff
-   \consists "Grid_point_engraver"
-   gridInterval = #(ly:make-moment 1 8)
-%% lines length
-   \override GridPoint #'Y-extent = #'(6 . 0)
- }
- \context {
-   \StaffGroup
-   \remove "System_start_delimiter_engraver"
- }
+\score {
+  \new ChoirStaff {
+    \relative c'' <<
+      \new Staff {
+        \time 12/8
+        \stemUp
+        c4. d8 e8 f g4 f8 e8. d16 c8
+      }
+      \new Staff {
+        % hides staff and notes so that only the grid lines are visible
+        \hideNotes
+        \override Staff.BarLine #'transparent = ##t
+        \override Staff.StaffSymbol #'line-count = #0
+        \override Staff.TimeSignature #'transparent = ##t
+        \override Staff.Clef #'transparent = ##t
+        
+        % dummy notes to force regular note spacing
+        \once  \override Score.GridLine #'thickness = #4.0
+        c8 c c
+        \once  \override Score.GridLine #'thickness = #3.0
+        c8 c c
+        \once  \override Score.GridLine #'thickness = #4.0
+        c8 c c
+        \once  \override Score.GridLine #'thickness = #3.0
+        c8 c c
+      }
+    >>
+  }
+  \layout {
+    \context {
+      \Score
+      \consists "Grid_line_span_engraver"
+      % center grid lines horizontally below note heads
+      \override NoteColumn #'X-offset = #-0.5
+    }
+    \context {
+      \Staff
+      \consists "Grid_point_engraver"
+      gridInterval = #(ly:make-moment 1 8)
+      % set line length and positioning:
+      % two staff spaces above center line on hidden staff
+      % to four spaces below center line on visible staff
+      \override GridPoint #'Y-extent = #'(2 . -4)
+    }
+    ragged-right = ##t
+  }
 }
-
-\layout {
- ragged-right = ##t
-}
-\new Score
-\with {
- \consists "Grid_line_span_engraver"
-%% centers grid lines  horizontally below noteheads
- \override NoteColumn #'X-offset = #-0.5
-}
-
-\new ChoirStaff <<
- \new Staff
- {
-   \time 12/8
-   \stemUp
-   \relative {
-   c'4. d8 e8 f g4 f8 e8.[ d16 c8] }
- }
- \new Staff
- {
-%% making sure the lines will be placed outside the Staff
-   \override Score.GridLine #'extra-offset = #'( 0.0 . -4.0 )
-
-%% hides staff and notes so that only the grid lines are visible
-   \override NoteHead #'transparent = ##t
-   \override NoteHead #'no-ledgers = ##t
-   \override Stem #'transparent = ##t
-   \override Beam #'transparent = ##t
-   \override Staff.BarLine #'transparent = ##t
-   \override Staff.StaffSymbol #'line-count = #0
-   \override Staff.TimeSignature #'transparent = ##t
-   \override Staff.Clef #'transparent = ##t
-
-% you have to put 'dummy' notes here to force regular grid spacing...
- \once  \override Score.GridLine #'thickness = #4.0
- c8   c8   c8
- \once  \override Score.GridLine #'thickness = #3.0
- c8   c8   c8
- \once  \override Score.GridLine #'thickness = #4.0
- c8   c8   c8
- \once  \override Score.GridLine #'thickness = #3.0
- c8   c8   c8
- }
->>
index e25afd8de353079809ac8234624654cadd9a5237..0ac2183c0574576e940c2eb0ba6ea807794774af 100644 (file)
@@ -11,6 +11,14 @@ Los patrones de barrado se pueden alterar con la propiedad
 
 "
   doctitlees = "Agrupar los pulsos"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Balkengruppen können mit der @code{beatGrouping}-Eigenschaft geändert
+werden:
+
+"
+  doctitlede = "Notengruppen"
 
   texidoc = "
 Beaming patterns may be altered with the @code{beatGrouping} property: 
index a065b4c7e8d90cc9bb14814bcf4d4e4b4aa23c51..83737a5640b738632c9b7a5ff42b1cf54f0401b7 100644 (file)
@@ -10,6 +10,14 @@ además de las notas de la melodía, acordes y diagramas de posiciones.
 "
   doctitlees = "Ritmos rasgueados de guitarra"
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+  texidocde = "
+In Guitarrennotation kann neben Melodie, Akkordbezeichnungen und
+Bunddiagrammen auch der Schlagrhythmus angegeben werden.
+
+"
+  doctitldee = "Schlagrhythmus für Guitarren"
+
   lsrtags = "rhythms,fretted-strings"
   texidoc = "
 For guitar music, it is possible to show strum rhythms, along
index a6db8a4cc0a8f086aeaabf10a805b52ca1d0a80a..9d1bc64927fa5acd52bbef45cebf46dcd548cabe 100644 (file)
@@ -12,6 +12,15 @@ Esta línea se puede suprimir de la siguiente manera:
 
 "
   doctitlees = "Ocultar la línea de extensión de las expresiones textuales de dinámica"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Dynamik-Texte (wie cresc. und dim.) werden mit einer gestrichelten Linie
+gesetzt, die ihre Dauer anzeigt.  Diese Linie kann auf foldenge Weise
+unterdrückt werden:
+
+"
+  doctitlede = "Crescendo-Linien von Dynamik-Texten unterdrücken"
 
   texidoc = "
 Text style dynamic changes (such as cresc. and dim.) are printed with a
index 97105b9383d264145dd2fdde7a2d16242748b8ea..090978591cb8ad49d3b5286e8b09c18a8bfb47d7 100644 (file)
@@ -9,6 +9,14 @@ una marca de cesura curva.
 
 "
   doctitlees = "Insertar una cesura"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+Zäsurzeichen können erstellt werden, indem die @code{'text}-Eigenschaft
+des @code{BreathingSign}-Objektes verändert wird.  Ein gekrümmtes
+Zäsurzeichen ist auch möglich.
+"
+  doctitlede = "Eine Zäsur einfügen"
 
   lsrtags = "expressive-marks,tweaks-and-overrides"
   texidoc = "
index 7f9ea843527866a9397e3ae1ad914e3df127c3f7..01a55b551a6513ec459621a6c226768e4e6e8c71 100644 (file)
@@ -19,6 +19,20 @@ semitrino en lugar del símboloo predeterminado +, asigne el valor
 "
   doctitlees = "Modificar los valores predeterminados para la notación abreviada de las articulaciones"
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>  
+ texidocde = "
+Die Abkürzungen sind in der Datei @samp{ly/script-init.ly} definiert, wo
+den Variablen @code{dashHat}, @code{dashPlus}, @code{dashDash},
+@code{dashBar}, @code{dashLarger}, @code{dashDot} und
+@code{dashUnderscore} Standardwerte zugewiesen werden.  Diese Standardwerte
+können verändert werden.  Um zum Beispiel die Abkürzung
+@code{-+} (@code{dashPlus}) mit dem Triller anstatt mit dem +-Symbol zu
+assoziieren, muss der Wert @code{trill} der Variable
+@code{dashPlus} zugewiesen werden:
+
+"
+  doctitlede = "Die Standardwerte für Arkkikulationsabkürzungen verändern"
+
   texidoc = "
 The shorthands are defined in @samp{ly/script-init.ly}, where the
 variables @code{dashHat}, @code{dashPlus}, @code{dashDash},
index a7a71dbc9163e9e945682e780f345d0fa6cbe384..a400d96839c39f19a24e58c0fb988c987233f4f1 100644 (file)
@@ -14,6 +14,7 @@ sincopados se deben barrar manualmente.
 
 "
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
   texidocde = "
 Dieses künstliche Beispiel zeigt, wie sowohl automatische als auch
 manuelle Zeilenumbrüche innerhalb einer N-tole mit Balken erlaubt
index 67d4af11e2ebf73ecc16d76fa1108fecc514ff3c..38344c0b8687a15eb7f52f42c7d4571478273e4d 100644 (file)
@@ -13,6 +13,17 @@ impar están separados verticalmente.  La colocación de los silencios
 multicompás se puede controlar como se ve a continuación:
 
 "
+
+texidocde = "
+Anders als bei normalen Pausen gibt es keinen direkten Befehl, um die
+vertikale Position von Ganztaktpausen zu beeinflussen, indem man sie an
+eine Tonhöhe anhängt.  In polyphoner Notation wird aber dennoch die
+Position der Pausen von geraden und ungeraden Stimmen voneinander
+unterschieden.  Die Position von Ganztaktpausen kann wie folgt verändert
+werden:
+ "
+  doctitlede = "Positionierung von Ganztaktpausen"
+
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
 Unlike ordinary rests, there is no predefined command
index feaa06846f691bb798530c242bf2fbe753acb7da..f990166f11d2067b5c8ff583265b0d50b7326dc3 100644 (file)
@@ -12,6 +12,16 @@ Se pueden imprimir reguladores con un círculo en la punta
 
 "
   doctitlees = "Impresión de reguladores utilizando la notación Â«al niente»"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+ Crescendo-Klammern können mit einem kleinen Kreis vor der Spitze
+ notiert werden (al niente = bis zum Nichts), indem die
+@code{circled-tip}-Eigenschaft des @code{Hairpin}-Objekts auf
+@code{#t} gesetzt wird.
+
+"
+  doctitlede = "Crescendo Klammern al niente schreiben"
 
   texidoc = "
 Hairpins may be printed with a circled tip (al niente notation) by
index 31b0a2a623b574ca979f134dc67590a31d8935c2..c774a721ffa2745ac1bc63e0e1010fdba9dc5006 100644 (file)
@@ -21,21 +21,21 @@ they may also be printed on every staff.
   doctitle = "Printing marks on every staff"
 } % begin verbatim
 
-{
-  \new Score \with {
-    \remove "Mark_engraver"
-    \remove "Staff_collecting_engraver"
-  }
+\score {
   <<
-    \new Staff \with {
-      \consists "Mark_engraver"
-      \consists "Staff_collecting_engraver"
+    \new Staff { c''1 \mark "molto" c'' }
+    \new Staff { c'1 \mark "molto" c' }
+  >>
+  \layout {
+    \context {
+      \Score
+      \remove "Mark_engraver"
+      \remove "Staff_collecting_engraver"
     }
-    { c''1 \mark "molto" c'' }
-    \new Staff \with {
+    \context {
+      \Staff
       \consists "Mark_engraver"
       \consists "Staff_collecting_engraver"
     }
-    { c'1 \mark "molto" c' }
-  >>
+  }
 }
index 40a2222f25dcfc933fcc6affd55b390a466fa3c1..0459ff64a78b6c372c9e6acba2e51dc4388f150d 100644 (file)
@@ -36,6 +36,7 @@ rhythmic-slashes.ly
 automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly
 using-beatlength-and-beatgrouping.ly
 three-sided-box.ly
+beam-endings-in-score-context.ly
 flat-flags-and-beam-nibs.ly
 specifying-context-with-beatgrouping.ly
 skips-in-lyric-mode.ly
index c4201f79f62288c527b59ff268c3911e1c2c51ad..d3537b1e63400c6d25c2ecac0256f73b169bfa3a 100644 (file)
@@ -10,6 +10,15 @@ sobreescribiendo la propiedad @code{to-barline}.
 
 "
   doctitlees = "Establecer el comportamiento de los reguladores en las barras de compás"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Wenn die Note, an welcher eine Crescendo-Klammer endet, die erste Note
+eines Taktes ist, wird die Klammer an der vorhergehenden Tatklinie
+beendet.  Dieses Verhalten kann auch mit der Eigenschaft
+@code{'to-barline} geändert werden:
+"
+  doctitlede = "Das Verhalten von Crescendo-Klammern an Taktlinien beeinflussen"
 
   lsrtags = "expressive-marks"
   texidoc = "If the note which ends a hairpin falls on a downbeat,
index e9e7749e0aa3eea6f0a43ab8b3766292513cad2d..f29767f62b2cee39a1c8f7e2f2cb02290e34011c 100644 (file)
@@ -12,6 +12,15 @@ modificando la propiedad @code{minimum-length} del objeto
 
 "
   doctitlees = "Ajustar la longitud mínima de los reguladores"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Wenn Crescendo-Klammern zu kurz sind, können sie verlängert werden, indem
+die @code{minimum-length}-Eigenschaft des @code{Hairpin}-Objektes
+verändert wird. 
+
+"
+  doctitlede = "Die Mindestlänge von Crescendo-Klammern bestimmen"
 
   texidoc = "
 If hairpins are too short, they can be lengthened by modifying the
index e130e37e5fa07234e8e6629aeb582e36de4c2851..7bcb9580c5c5dcac4c885a32d2632b7161ebca07 100644 (file)
@@ -3,6 +3,15 @@
 \version "2.11.62"
 
 \header {
+  texidoces = "
+Mediante la especificación del contexto, el efecto de
+@code{beatGrouping} puede limitarse al contexto especificado, y
+sobreescribirse los valores establecidos en contextos de niveles más
+altos:
+
+"
+  doctitlees = "Especificar el contexto con beatGrouping"
+
   lsrtags = "rhythms"
   texidoc = "
 By specifying the context, the effect of @code{beatGrouping} can be
index 83ed5564248e91f703c9b2826da3712539a15bbf..5070d73effb0b31eb47e2103379a974f6d81cf77 100644 (file)
@@ -31,9 +31,10 @@ the beams into sub-groups by setting the property
 @code{subdivideBeams}. When set, multiple beams will be sub-divided at
 intervals defined by the current value of @code{beatLength} by reducing
 the multiple beams to just one beam between the sub-groups. Note that
-@code{beatLength} defaults to a quarter note if not set explicitly.  It
-must be set to a fraction giving the duration of the beam sub-group
-using the @code{make-moment} function, as shown here:
+@code{beatLength} defaults to one over the denominator of the current
+time signature if not set explicitly. It must be set to a fraction
+giving the duration of the beam sub-group using the @code{make-moment}
+function, as shown here:
 
 
 
index 35369decd26c9febf25e3d2e2b7a3e95ebd3a053..ce9b1b745996464a2e9c26296df4b5fb0507e7df 100644 (file)
@@ -3,6 +3,18 @@
 \version "2.11.62"
 
 \header {
+  texidoces = "
+La propiedad @code{measureLength} determina dónde se deben insertar
+líneas divisorias y, con @code{beatLength} y @code{beatGrouping}, cómo
+se deben generar las barras autoomáticas para las duraciones de barra
+y compases para los que no hay ninguna regla definida para los finales
+de barra. Este ejemplo muestra distintas dormas de controlar el
+barrado mediante el establecimiento de estas propiedades. Las
+explicaciones están en forma de comentarios dentro del código.
+
+"
+  doctitlees = "Utilización de beatLength y beatGrouping"
+
   lsrtags = "rhythms"
   texidoc = "
 The property @code{measureLength} determines where bar lines
index 02ff49c7ebfc1e02f755096fa7470751db118a87..d2c46816ab2541fab4bf99c141d2f38f2ecd554f 100644 (file)
@@ -11,6 +11,14 @@ legato.  Esto se puede conseguir estableciendo @code{doubleSlurs}.
 
 "
   doctitlees = "Utilizar ligaduras dobles para acordes legato"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Einige Komponisten schreiben doppelte Bögen, wenn Legato-Akkorde notiert
+werden.  Das kann mit der Eigenschaft @code{doubleSlurs} erreicht werden.
+
+"
+  doctitlede = "Doppelte Bögen für Legato-Akkorde benutzen"
 
   texidoc = "
 Some composers write two slurs when they want legato chords.  This can
index e41c86478fb471564edd9f2c4170c95a6fd26a0f..47fbcf399d461e73bb73df281aa90730f5483e4e 100644 (file)
@@ -16,6 +16,18 @@ en principio, también se puede usar para notas normales consecutivas,
 como se muestra en este ejemplo.
 
 "
+
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+ Ãœberbindungen werden teilweise benutzt, um Arpeggios zu notieren.  In
+ diesem Fall stehen die Ã¼bergebundenen Noten nicht unbedingt hintereinander.
+Das Verhalten kann erreicht werden, indem die @code{tieWaitForNote}-Eigenschaft
+auf @code{#t} gesetzt wird.  Diese Funktion ist auch sinnvoll, um etwa
+ein Tremolo mit einem Akkord zu Ã¼berbinden, kann aber prinzipiell auch
+für normale Ãœberbindungen eingesetzt werden
+"
+  doctitlede = "Ãœberbingungen für Arpeggio genutzen"
+
   texidoc = "
 Ties are sometimes used to write out arpeggios.  In this case, two tied
 notes need not be consecutive.  This can be achieved by setting the
index 5048b5808e0a61831c409a92ff45637313fbaa0e..63f1dca4bb1d4a31424b831c22fadb12314e5728 100644 (file)
@@ -18,6 +18,21 @@ largo de su línea de base.
 
 "
   doctitlees = "Indicaciones dinámicas y textuales alineadas verticalmente"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Indem man die @code{'Y-extent}-Eigenschaft auf einen passenden Wert setzt,
+können alle @code{DynamicLineSpanner}-Objekte (Crescendo-Klammern und
+Dynamik-Texte)  (hairpins and dynamic texts) unabhängig von ihrer
+wirklichen Ausdehnung an einem gemeinsamen Referenzpunkt ausgerichtet werden.
+Auf diese Weise ist jedes Element vertikal ausgerichtet und der Notensatz
+sieht ansprechender aus.
+
+Die gleiche Idee wird benutzt, um Textbeschriftungen an ihrer
+Grundlinie auszurichten.
+
+"
+  doctitlede = "Vertikale Ausrichtung von Dynamik und Textbeschriftung beeinflussen"
 
   texidoc = "
 By setting the @code{'Y-extent} property to a suitable value, all
diff --git a/input/regression/figured-bass-continuation-modifiers.ly b/input/regression/figured-bass-continuation-modifiers.ly
new file mode 100644 (file)
index 0000000..de92cda
--- /dev/null
@@ -0,0 +1,21 @@
+\header {
+
+  texidoc = "Figured bass extender lines shall be broken when a figure has
+  a different alteration, augmentation or diminishment."
+
+}
+
+\version "2.11.63"
+\paper {
+  ragged-right = ##t
+}
+
+<<
+  \relative \new Voice {
+    c8 c c c c c
+  }
+  \figures {
+    \bassFigureExtendersOn
+    <6 4 3>8 <6\\ 4! 3!> <6 4- 3+> <6/ 4\+ 3>  <6 4\! 3+>  <6\+ 4\+ 3++>
+  } 
+>>
diff --git a/input/regression/musicxml/00-Basics.ily b/input/regression/musicxml/00-Basics.ily
new file mode 100644 (file)
index 0000000..08c6f05
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Basics (pitches, durations, ...)
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
\ No newline at end of file
index 9edd9ab7873a63aa81e90f5df27aadd00edfeaf2..176850dca3cd66f7e005016db6a6a7397d8f5e12 100644 (file)
@@ -4,7 +4,12 @@
 <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">
index e5f9ef48529580624c2df9d6c10bf1a096af6964..79d1430c621e4b043482a3efed721058e0a27221 100644 (file)
@@ -3,6 +3,12 @@
                                 "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>
index c42439e04b8a857a97d49d155344e0b2e4fbf205..83b19ae8ccb245c372caaba39025344478e436b0 100644 (file)
@@ -4,7 +4,11 @@
 <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">
index 1d942f528e557c906b4952ca5aa3ffbb785bd960..d23d2c385a634bed88bd23632a38f85b0cdd7782 100644 (file)
@@ -4,13 +4,17 @@
 <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
index 1142b4a88b1f6bbc936e50ac935bf59f3ffcc1a2..165520d45123081d7965bc3a2ce9079135e62be6 100644 (file)
@@ -7,6 +7,13 @@
                        <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>
index 9e3e384da96082499789c3bbfe252cb49d4a12dd..11eb38a8f71f1bca78de9aee3ab7094555ac1c96 100644 (file)
       <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
index 704916401795d371774ced63f32eb709fea8244c..b8c0fb7ae09e12309b09a93640f049db874a434b 100644 (file)
@@ -3,6 +3,11 @@
                                 "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>
index 9439b4767986ed59a87bab413df2efba6d076992..5ded630ad3c66a49c8fb4f1109b246316d3da160 100644 (file)
@@ -3,6 +3,11 @@
                                 "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>
index 25e7bc473218b19127d8363046460f0e209f2a7e..448f79f4bcb0a70a56c0284360b0af8c3efe8bc4 100644 (file)
@@ -2,7 +2,13 @@
 <!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>
index e6c9ca066a4379299754ec81d923aaddecdd1fa4..98f48b063a97090b7036356e447972114e428fd7 100644 (file)
@@ -2,8 +2,13 @@
 <!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>
index 8c2f7d92f4637e1b6e62842cdd5e97b041c15d62..81a6d449afe4c24b45d5fccea1456ef2c744041a 100644 (file)
@@ -3,6 +3,14 @@
 
 <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>
index e904ff081f56d715bd8e3a209156a2d3ffb10703..0f66541c5f7dbbc07a40f13db697139386ca2278 100644 (file)
@@ -9,6 +9,10 @@
       <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
index e467ce7ab7a969823e632543aceb852b698d45af..a2f85e068730f65e15fa2761243c06eb5918c51d 100644 (file)
@@ -3,7 +3,11 @@
  "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>
diff --git a/input/regression/musicxml/00m-MultimeasureRests-TimeSignatures.xml b/input/regression/musicxml/00m-MultimeasureRests-TimeSignatures.xml
new file mode 100644 (file)
index 0000000..3446ef5
--- /dev/null
@@ -0,0 +1,167 @@
+<?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
diff --git a/input/regression/musicxml/01-Chords.ily b/input/regression/musicxml/01-Chords.ily
new file mode 100644 (file)
index 0000000..4de0118
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Chorded notes
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
\ No newline at end of file
index f953641244e3ebdfbb1824df3f5322e6a27ead03..4606341e1d5fd81ea7894500ec9d3429867602d8 100644 (file)
@@ -7,7 +7,11 @@
                <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>
index aeb0b3b52589c42fcfab1e70f55f797502239600..f8b0b162bb5dc0f47278835f21f38bd64a5390bf 100644 (file)
@@ -7,6 +7,10 @@
                <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">
index c5be6e58ae6991a34352257ec27753852e3572eb..952752d88deab4bdd46ddb268d7c68b74df987ca 100644 (file)
@@ -7,6 +7,10 @@
                <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">
index 3dce2b83c20dd5ba4d0fc1d14fc8955ecbbb0825..d614b66b7d9f3b0fafadbb0858de26bac31268c3 100644 (file)
@@ -7,6 +7,12 @@
                <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">
index 4b9c9d406092b5e35c54c88ba9d3e1cc123bbc8b..c89c1d4233c09dfbc1c98dbd01b2470c4ef5000c 100644 (file)
@@ -2,9 +2,16 @@
 <!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>
diff --git a/input/regression/musicxml/01f-Chord-ElementInBetween.xml b/input/regression/musicxml/01f-Chord-ElementInBetween.xml
new file mode 100644 (file)
index 0000000..8ed4979
--- /dev/null
@@ -0,0 +1,92 @@
+<?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>
diff --git a/input/regression/musicxml/02-Notations-Articulations.ily b/input/regression/musicxml/02-Notations-Articulations.ily
new file mode 100644 (file)
index 0000000..39ed41a
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Notations and Articulations
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
\ No newline at end of file
index 431a80ffc902c4bb7f1c218273055e036a3afa5b..4b350a71fdbbd62cda0c44f9e27190b4f40e1c3e 100644 (file)
@@ -3,7 +3,13 @@
                                 "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 &lt;notation&gt; 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>
index 8e52b8d21c4ab87b7e67f53640391bee441e6b1d..bc54908c786f8be98a9f26b9bd53f370b7e9c8bb 100644 (file)
@@ -7,6 +7,10 @@
                        <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>
index 450201d2cc1bc5853f84862a5fb0b11e61d1c15f..8f7ecefd3214813b71a0ab7b4cb4925ce5e4b336 100644 (file)
@@ -9,9 +9,9 @@
       <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>
index 97e33b15ff5f73e8feb5967404a8005e0eed5884..3f92724e9506b4166cb03dc488d2837106db29a8 100644 (file)
@@ -3,7 +3,12 @@
                                 "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">
diff --git a/input/regression/musicxml/03-Directions.ily b/input/regression/musicxml/03-Directions.ily
new file mode 100644 (file)
index 0000000..339b1b4
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Dynamics and other single symbols
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
\ No newline at end of file
index 6863135b0d96c7ef6b12c50ee9cf2276e40f063d..f0994fa0ab1b1702b37dbce8ae467ca6e021e9a9 100644 (file)
@@ -3,7 +3,13 @@
                                 "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 &lt;direction&gt; 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
index ad6fa3c739786b0fa5206359234ea8a944cb4f78..fa0a250afb53942d813f3eb3c3d3c43af66af05b 100644 (file)
@@ -3,7 +3,12 @@
                                 "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
index 0ce82084183551eef488bff8469581bbd8b91a3a..ffb76c172ee71570696fada8666f61d4242dae4c 100644 (file)
@@ -3,7 +3,12 @@
                                 "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">
diff --git a/input/regression/musicxml/04-Spanners.ily b/input/regression/musicxml/04-Spanners.ily
new file mode 100644 (file)
index 0000000..8f57bf5
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Spanners
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index 30ab9337838b255239206cad8a5608e369056760..573ebf6783c841da3e4e9a4f4047fffc9ca10704 100644 (file)
@@ -11,6 +11,9 @@
       <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
index a9e0e0a7da364af71f85c853bbb1a2a26ff75937..0e143098b1a961bc63e7a8798945517c31855b11 100644 (file)
@@ -3,7 +3,12 @@
                                 "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">
index a404b5e736cc3f1634af61f71a665f26c645b718..5862d7d1db87847607c22d2ca8946ff14bab42cf 100644 (file)
@@ -11,6 +11,9 @@
                <encoding>
                        <software>NoteEdit</software>
                </encoding>
+               <miscellaneous>
+                       <miscellaneous-field name="description">Some spanners, exported by NoteEdit</miscellaneous-field>
+               </miscellaneous>
        </identification>
 
        <part-list>
index 677879398f46ba89c56b46228d1bbd4c0473dc82..f82b62acf68c8b91b848e5bf76aa33cf2d494b2b 100644 (file)
@@ -11,6 +11,9 @@
 <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" >
index 3e93c60077a7d13f2ebd509f7324cf6e9888f086..5d7e78307ff137a951e814228212af954f60adc5 100644 (file)
@@ -11,6 +11,9 @@
       <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">
diff --git a/input/regression/musicxml/04f-Slurs.xml b/input/regression/musicxml/04f-Slurs.xml
new file mode 100644 (file)
index 0000000..1da68d9
--- /dev/null
@@ -0,0 +1,159 @@
+<?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
diff --git a/input/regression/musicxml/04g-Trill-EndingOnGraceNote-Finale.xml b/input/regression/musicxml/04g-Trill-EndingOnGraceNote-Finale.xml
new file mode 100644 (file)
index 0000000..b74ff00
--- /dev/null
@@ -0,0 +1,159 @@
+<?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
diff --git a/input/regression/musicxml/05-Header.ily b/input/regression/musicxml/05-Header.ily
new file mode 100644 (file)
index 0000000..3c2ffbb
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Header information
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index e98b46b46976f79e25b36bd61237da74a61857a3..903cd2a3b9059084e12ced993fe6c61bf444642b 100644 (file)
       <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
diff --git a/input/regression/musicxml/06-Lyrics.ily b/input/regression/musicxml/06-Lyrics.ily
new file mode 100644 (file)
index 0000000..c4e6ca6
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Lyrics
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index b1fbd4474fec9766790b38e545c555cbf90b1a7d..e4b76f4c0d52aa84e1b5ec1e434717cde25fd792 100644 (file)
@@ -8,6 +8,9 @@
       <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
index f2d7c8d869fa52e0bbd45825a2833b2cd6f743ad..75ea3a0e5ed7c49b27fdc97422af4b840aa5a34c 100644 (file)
       <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">
index 98f33cdfb2c4f7eeeaad74d9fec1d67ca6346e7e..88c86f11eb32e05bb802fdb55a63f21da82c5523 100644 (file)
       <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
index f5f0b9cdf9817fe302f0f769beb6d238a7f48ada..5bd8d256850bab10580f384c7e19ed607e0e0d35 100644 (file)
@@ -9,6 +9,11 @@
       <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
index 6521be5908a73f5a18d646c8655613697bb99b0c..cd4ded886dd53f26d7a94e5a34178204e7c43721 100644 (file)
@@ -9,6 +9,9 @@
       <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
index d6fa55c1c051bf9fbf68eaa60d4f41d96460bbbb..91278b9531cd70eb65fb2d00b483b642a0879c3d 100644 (file)
@@ -9,6 +9,10 @@
       <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
index 1d9494f4f207ad7bcca65684dc61548773ffa939..c383bf4504652bb1202802b9443be59dcf338e7e 100644 (file)
@@ -5,6 +5,15 @@
   <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">
index b369be229eb265aaa5113a39620086d4a960b535..90cf992a0af10176bb5329a3ffb149dde28100cc 100644 (file)
@@ -3,7 +3,13 @@
                                 "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">
diff --git a/input/regression/musicxml/08-Multiple-Parts.ily b/input/regression/musicxml/08-Multiple-Parts.ily
new file mode 100644 (file)
index 0000000..037f071
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Multiple parts (staves)
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index 90f6f9239d9492b4b03cfd6ead970b026dde5602..883d94e7d752aea2f6fc9e83bde0e13c2fc35a9a 100644 (file)
@@ -7,6 +7,10 @@
                <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">
index 2bf1b50f009e0f8557928da5c749c86817d00c30..6e0c296d096e71bfcd4bcb20c304a39717a2abf6 100644 (file)
       <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">
index 10c95818b31e1ae17ad2d27fd5c291db9f66f1ef..edb5dfb37c969477085970f18f0bfc69c2586fe6 100644 (file)
@@ -7,6 +7,11 @@
                <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">
index f919e2ccd453b3cd471183e5c735bb0616acaedf..0eb84b8a7f67f638c4e06b91d7370993cf847cea 100644 (file)
@@ -4,13 +4,17 @@
 <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">
index 1b1948f1f9f9bcc3fc55ce7eac8c9fc48e70f8b0..7344ecf7322e0e8c1d14b3baa6f18cb3b2c2ddfe 100644 (file)
       <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">
index ad4023a95180d675319a3b301a6d52e7c8fbb6fe..426bb2325f93f26c658c4afc473539c878f49b95 100644 (file)
@@ -7,6 +7,9 @@
                        <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">
index fd2ca4b52ec006a5e5b90f3e97bad44dd79c7637..89bb325056836f53e0be239604f8e94e30db8002 100644 (file)
@@ -4,13 +4,18 @@
 <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
diff --git a/input/regression/musicxml/09-Measures.ily b/input/regression/musicxml/09-Measures.ily
new file mode 100644 (file)
index 0000000..c8ab96c
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Measures, Barlines, Repeats
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index cf34f14144c16b94e1543d8c977343e5c8016eed..4600109debbd46b54a6e1e689e7007a7449790d8 100644 (file)
@@ -8,6 +8,10 @@
       <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
index 23b02126987dc8a4d447c53d7921fe6b5077a0f9..76e39c9cc4c32dc2246884a66c5b8e82a329b7a3 100644 (file)
@@ -8,6 +8,10 @@
       <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
index 611760a819ead8cc310d6f40a62a493afc9a24c5..4c0849a3ec99d9a79cfdd67160476ac7e63b68ff 100644 (file)
       <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
index 6cbe6db71fe7ae01c517cb8a8db3663fae3afb5a..1bb4cb8c453cf39b8e89384a17963c112743ccc9 100644 (file)
@@ -8,6 +8,9 @@
       <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
index dbbb9d4946a9a33452b05a7ec8120ffd8901f711..25a96a5af96ece0e48feb63a0cd3a7b06fc3a200 100644 (file)
@@ -9,6 +9,10 @@
       <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
index ec5bb438854e33730372936e758c8a93048e25ca..9272c6935f24f2375a781d453cf3cc229180087f 100644 (file)
       <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
index 82b4c5524ac102aab333b2a7dc231abf2980c97c..7e0453971e602cc7bad03ee2a6f66885f22ffbf4 100644 (file)
@@ -8,6 +8,12 @@
       <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
index 2dc1ef8f64a86a85ee6f45a5f58e107236e059e3..b2d94f5c481e2cad7b47ddca8373206411fd0cfc 100644 (file)
@@ -9,6 +9,10 @@
       <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
index dc35c64f40ed3db4500b16c283cffd83b8249c9f..5d227bc3409563ece296c8ea8a0cba6ea34df8c4 100644 (file)
@@ -7,6 +7,10 @@
     </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">
index efe20ca588f61ee192cee43f295ccff4ddd3d2e3..d4508f1ee37451c6d8020ddadb7884e824e37efd 100644 (file)
@@ -11,6 +11,9 @@
       <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">
index c81bd38e730d1d86ccf950aa5eee2898712f9aa3..955e98a9fd19d2e096e06762cfd4f331c66eea5b 100644 (file)
@@ -9,6 +9,11 @@
       <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
index c69fdd1f8981f19fb3285607b273620b0f92b37c..b86502b529fe75e9d7ebbd9e9cfc78840c0e17bc 100644 (file)
@@ -3,10 +3,13 @@
           "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">
diff --git a/input/regression/musicxml/09m-MultiVoice-MidMeasureClefChange-Finale.xml b/input/regression/musicxml/09m-MultiVoice-MidMeasureClefChange-Finale.xml
new file mode 100644 (file)
index 0000000..96ae458
--- /dev/null
@@ -0,0 +1,433 @@
+<?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 &lt;backward&gt; \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
diff --git a/input/regression/musicxml/10-Multiple-Voices.ily b/input/regression/musicxml/10-Multiple-Voices.ily
new file mode 100644 (file)
index 0000000..987f6a0
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Multiple voices per staff
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index 400389b3f76c7a0f65d8997d9b85fd70496b2885..a8d838602c8ad65d84b4e9e641e66e2aab8c67e9 100644 (file)
@@ -11,6 +11,9 @@
       <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
diff --git a/input/regression/musicxml/12-Tuplets.ily b/input/regression/musicxml/12-Tuplets.ily
new file mode 100644 (file)
index 0000000..86e8fa9
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Triplets, Tuplets
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index 0e255600b877708fc5a020b0338f0a9fd3b2124c..d4a6b638d8a8706449beefbc36489c99bd783413 100644 (file)
@@ -7,6 +7,15 @@
                        <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 
+                            &lt;time-modification&gt;, 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>
index e1d54e097f626dc759506a308fa5c3ec945be5ec..a6d55dc69b6d3e9c0ec53d2634c73f022da904a0 100644 (file)
       <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">
diff --git a/input/regression/musicxml/13-Grace-Notes.ily b/input/regression/musicxml/13-Grace-Notes.ily
new file mode 100644 (file)
index 0000000..fc89633
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Grace notes
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index afb34cbb2670ef683c4a5f11d1e9394134bb863f..aaaa66317868c4a885d84c040fd88674d2e69803 100644 (file)
       <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">
index 8efa525f413ec20d19c0c52ee3b65b48dff75f15..341d4e1ee88d00d8b906657270bd4d1a42f4dba4 100644 (file)
@@ -11,6 +11,9 @@
       <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">
diff --git a/input/regression/musicxml/13c-GraceNote-MeasureEnd-Finale.xml b/input/regression/musicxml/13c-GraceNote-MeasureEnd-Finale.xml
new file mode 100644 (file)
index 0000000..50bbbe5
--- /dev/null
@@ -0,0 +1,100 @@
+<?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
diff --git a/input/regression/musicxml/13d-AfterGrace.xml b/input/regression/musicxml/13d-AfterGrace.xml
new file mode 100644 (file)
index 0000000..aeb577c
--- /dev/null
@@ -0,0 +1,131 @@
+<?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
diff --git a/input/regression/musicxml/14-Multi-Staff-Parts.ily b/input/regression/musicxml/14-Multi-Staff-Parts.ily
new file mode 100644 (file)
index 0000000..5f66b42
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section One voice on multiple staves
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index 7c040fcd432395ff66e6f77792d4c2638c498f46..cfc6791a5047be5a09ce8ec73a0b48d41f27b46a 100644 (file)
@@ -4,13 +4,17 @@
 <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">
index e863e840f97621ad08858152406d88540daa566c..83d2eafbc860315535a127be58774348a5600b32 100644 (file)
@@ -7,6 +7,12 @@
                        <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">
@@ -18,6 +24,7 @@
                        <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>
@@ -31,9 +38,6 @@
                                <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>
index 72abf7b4f75ea62964f915cb3266e51a8df4a387..58558825c642208b1822a0b5324529fdd347077e 100644 (file)
@@ -7,6 +7,14 @@
                        <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">
index 5ac8eff82421b14d52be65dd7f482807ec1f3be3..5ed14d87d86c82d97d953f9fea58530702b516ed 100644 (file)
@@ -4,13 +4,17 @@
 <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
diff --git a/input/regression/musicxml/15-Percussion.ily b/input/regression/musicxml/15-Percussion.ily
new file mode 100644 (file)
index 0000000..4dc5aec
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Percussion
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index b404932e637ba6c674d01d6c2a5de4c1d598f61d..8bb304ffd80af1c33315d95c0418918263e51d75 100644 (file)
@@ -3,7 +3,14 @@
                                 "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>
diff --git a/input/regression/musicxml/17-Guitar.ily b/input/regression/musicxml/17-Guitar.ily
new file mode 100644 (file)
index 0000000..e957743
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Guitar notation
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index 385bd36d2cb250a15015e377c1ca8d6d4168ee09..d1f83915d25eafd0b58daebf6a06cdac8f727c72 100644 (file)
@@ -9,6 +9,10 @@
       <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
index bfd24c5e5f0ff6922fdbb21e1e98d8339f9520e7..0d2d12650d0136ca2e9ce2749f1bb91a87f023a4 100644 (file)
@@ -9,6 +9,10 @@
       <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
index 8a5de4414d6999d5cc67e32696d14ad0d310a931..dbe9227b568c5e7d6c873ce6285e5bc666d32400 100644 (file)
@@ -9,6 +9,12 @@
       <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
index c96217bf288d81f140a13ea114e76da4ae685616..6ba0c290ac7157fefba874041f8b1a3f86f77a72 100644 (file)
@@ -9,6 +9,11 @@
       <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
index 0b878114e5778019fa3025795d9e5289dd5187ba..67bb52c7ba8731acaa515812bd6f4c67f8f25bf1 100644 (file)
@@ -9,6 +9,11 @@
       <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
index ba24bed6a3c31e0bddd1e1086a6bfdfe774e9aa1..c7a1634befbe905d74971115d2bc896b7e7820ac 100644 (file)
@@ -3,7 +3,14 @@
                                 "http://www.musicxml.org/dtds/partwise.dtd">\r
 <score-partwise>\r
   <movement-title>All MusicXML chord names/types with &lt;root&gt;</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
diff --git a/input/regression/musicxml/18-Figured-Bass.ily b/input/regression/musicxml/18-Figured-Bass.ily
new file mode 100644 (file)
index 0000000..2352243
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Figured bass
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index b0a43eb94b74835f870bfb4ef628459ea1c259db..a7493c16e06e60e28774e4437bbd344e2d8c0ea1 100644 (file)
@@ -3,7 +3,17 @@
                                 "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 &lt;figured-bass&gt; 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>
diff --git a/input/regression/musicxml/19-Page-Layout.ily b/input/regression/musicxml/19-Page-Layout.ily
new file mode 100644 (file)
index 0000000..30e45e7
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Page layout
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index ac51b7fff1c2f5e7cbd4d8115cc6733597c38e43..4846212e0b42cef39d3601bce3ac86fd2498bc68 100644 (file)
@@ -9,6 +9,11 @@
       <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>
diff --git a/input/regression/musicxml/20-Compressed-MusicXML.ily b/input/regression/musicxml/20-Compressed-MusicXML.ily
new file mode 100644 (file)
index 0000000..1ae142e
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Compressed MusicXML files
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
diff --git a/input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl b/input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl
deleted file mode 100644 (file)
index 0d41bf3..0000000
Binary files a/input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl and /dev/null differ
diff --git a/input/regression/musicxml/20a-Compressed-MusicXML.mxl b/input/regression/musicxml/20a-Compressed-MusicXML.mxl
new file mode 100644 (file)
index 0000000..d709094
Binary files /dev/null and b/input/regression/musicxml/20a-Compressed-MusicXML.mxl differ
diff --git a/input/regression/musicxml/99-Compatibility.ily b/input/regression/musicxml/99-Compatibility.ily
new file mode 100644 (file)
index 0000000..3988198
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.10.0"
+
+\header{
+  texidoc = "
+@section Compatibility with broken MusicXML
+
+"
+}
+
+% make sure the .png is generated.
+\lyrics { "" }
index 07d97a88e6042683231142748046ada975431423..d3f39f9fd93bc2ff179e14125ae761333f809eea 100644 (file)
@@ -9,6 +9,13 @@
                         <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>
@@ -71,9 +99,8 @@
                                 <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>
index 417faa724dbc3b7febd8551bf2d681a5f8285755..1dc303508153a4aa84512862b5fe7e913cb28e04 100644 (file)
@@ -8,6 +8,12 @@
       <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>
index ae9d27a768ec517dad8c0cca4b6506580ce2ade5..92f44b68176f0d052b3e2cc248567b94728829f4 100644 (file)
@@ -3,8 +3,17 @@ depth = ../../..
 STEPMAKE_TEMPLATES=documentation texinfo tex
 LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc musicxml
 
+TITLE=Lilypond musicxml2ly Regression Tests
+
+
+ILY_FILES = $(call src-wildcard,*.ily)
+EXTRA_OUT_LY_FILES = ${ILY_FILES:%.ily=$(outdir)/%.ly}
+EXTRA_DIST_FILES += $(ILY_FILES)
+
+
 include $(depth)/make/stepmake.make
 TITLE=Lilypond musicxml2ly Regression Tests
 
-MXL_FILES := $(call src-wildcard,*.mxl)
-EXTRA_DIST_FILES += $(MXL_FILES)
+.SUFFIXES: .ily
+$(outdir)/%.ly: %.ily
+       ln -f $< $@
diff --git a/input/regression/ragged-bottom-one-page.ly b/input/regression/ragged-bottom-one-page.ly
new file mode 100644 (file)
index 0000000..07f8f38
--- /dev/null
@@ -0,0 +1,13 @@
+\version "2.11.64"
+
+\header {
+  texidoc = "For a one-page score, ragged-bottom should have the
+same effect as ragged-last-bottom."
+}
+
+\paper {
+  ragged-bottom = ##t
+  ragged-last-bottom = ##f
+}
+
+\repeat unfold 16 c'4
diff --git a/input/regression/repeat-percent-count-visibility.ly b/input/regression/repeat-percent-count-visibility.ly
new file mode 100644 (file)
index 0000000..39e3fdd
--- /dev/null
@@ -0,0 +1,15 @@
+\version "2.11.64"
+\header {
+  texidoc = "
+Percent repeat counters can be shown at regular
+intervals by setting @code{repeatCountVisibility}.
+"
+}
+
+\relative c'' {
+  \set countPercentRepeats = ##t
+  \set repeatCountVisibility = #(every-nth-repeat-count-visible 5)
+  \repeat percent 10 { c1 } \break
+  \set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
+  \repeat percent 6 { c1 d1 }
+}
index d33a619bfcc76150564ab79943746aff99f7877e..d7c58f197f65fc98daec6ab89c8fabd6a5b077e6 100644 (file)
@@ -1,24 +1,25 @@
-\version "2.11.51"
+\version "2.11.64"
 
 \header {
-
   texidoc = "System separators may be defined as markups in the
-@code{systemSeparator} field of the paper block.  They are centered
-between the boundary staves of each system."
-
+@code{system-separator-markup} field of the paper block.  They are
+centered between the boundary staves of each system."
 }
 
 \paper {
-  systemSeparatorMarkup = \slashSeparator
+  system-separator-markup = \slashSeparator
+}
 
+foobar = \relative c' {
+  c1 c \break
+  c1 c \break
+  c1 c
 }
-foobar = \relative { c1 c \break c c  \break c c }
-\book
-{
+\book {
   \score {
-     \new GrandStaff <<
-       \new Staff \foobar 
-       \new Staff \foobar 
-     >>
+    \new GrandStaff <<
+      \new Staff \foobar 
+      \new Staff \foobar 
+    >>
   }
 }
index 3b13b8a6d9dabbbd6be1dee2ef85cde3ebe37910..41692eb1b6113e6aff3676aa0ea9fbeac6340dbb 100644 (file)
@@ -23,7 +23,8 @@ ifeq ($(HAVE_LIBKPATHSEA_SO),no)
 MODULE_LDFLAGS += $(KPATHSEA_LIBS)
 endif
 ifeq ($(LINK_GXX_STATICALLY),yes)
-MODULE_LDFLAGS += -L$(outdir) -static-libgcc
+LD = $(CC) # GCC-4.0.x will never link statically to allow exceptions
+MODULE_LDFLAGS += -L$(outdir) -static-libgcc -lstdc++
 endif
 
 CXXFLAGS += -Woverloaded-virtual
index 782574e5e6e97a491a977379d6f76a556e5199ec..a0554eed5887a21d682605fa73d6087cc0d010f9 100644 (file)
@@ -28,6 +28,9 @@ struct Figure_group
   
   SCM number_;
   SCM alteration_;
+  SCM augmented_;
+  SCM diminished_;
+  SCM augmented_slash_;
   
   Item *figure_item_; 
   Stream_event *current_event_;
@@ -40,6 +43,9 @@ struct Figure_group
     continuation_line_ = 0;
     number_ = SCM_EOL;
     alteration_ = SCM_EOL;
+    augmented_ = SCM_EOL;
+    diminished_ = SCM_EOL;
+    augmented_slash_ = SCM_EOL;
     group_ = 0;
     current_event_ = 0;
   }
@@ -51,7 +57,13 @@ struct Figure_group
       && ly_is_equal (number_,
                      current_event_->get_property ("figure"))
       && ly_is_equal (alteration_,
-                     current_event_->get_property ("alteration"));
+                     current_event_->get_property ("alteration"))
+      && ly_is_equal (augmented_,
+                     current_event_->get_property ("augmented"))
+      && ly_is_equal (diminished_,
+                     current_event_->get_property ("diminished"))
+      && ly_is_equal (augmented_slash_,
+                     current_event_->get_property ("augmented-slash"));
   }
 };
 
@@ -91,6 +103,9 @@ Figured_bass_engraver::derived_mark () const
     {
       scm_gc_mark (groups_[i].number_);
       scm_gc_mark (groups_[i].alteration_);
+      scm_gc_mark (groups_[i].augmented_);
+      scm_gc_mark (groups_[i].diminished_);
+      scm_gc_mark (groups_[i].augmented_slash_);
     }
 }
 
@@ -348,6 +363,9 @@ Figured_bass_engraver::process_music ()
        {
          groups_[i].number_ = SCM_BOOL_F;
          groups_[i].alteration_ = SCM_BOOL_F;
+         groups_[i].augmented_ = SCM_BOOL_F;
+         groups_[i].diminished_ = SCM_BOOL_F;
+         groups_[i].augmented_slash_ = SCM_BOOL_F;
        }
     }
 
@@ -451,6 +469,9 @@ Figured_bass_engraver::create_grobs ()
          
          group.number_ = fig;
          group.alteration_ = group.current_event_->get_property ("alteration");
+         group.augmented_ = group.current_event_->get_property ("augmented");
+         group.diminished_ = group.current_event_->get_property ("diminished");
+         group.augmented_slash_ = group.current_event_->get_property ("augmented-slash");
 
          SCM text = group.current_event_->get_property ("text");
          if (!Text_interface::is_markup (text)
index 3c26c9abe08c5d15ac932cd4f2ed7f025f6a19f2..b45781fd0a7fc0b0c459a0a3acc1cdc6a9f7604e 100644 (file)
@@ -63,6 +63,8 @@ Optimal_page_breaking::solve ()
   
       if (page_count > 1 && best.systems_per_page_[page_count - 2] > 1)
        min_sys_count -= best.systems_per_page_[page_count - 2];
+
+      min_sys_count = max (min_sys_count, (vsize)1);
     }
   else
     {
index 19129b3c175a0024dc157aebdcee31b8034e52a7..78ad9a842a6561e2df7c02438b5089ab52ee57ab 100644 (file)
@@ -204,7 +204,7 @@ Page_spacer::calc_subproblem (vsize page, vsize line)
 
       if (page > 0 || page_start == 0)
        {
-         if (line == lines_.size () - 1 && ragged_last_ && space.force_ > 0)
+         if (line == lines_.size () - 1 && ragged && last && space.force_ > 0)
            space.force_ = 0;
 
          /* we may have to deal with single lines that are taller than a page */
index fc3d2a727a119aa95c39190dfe5c4fb323d439b9..b00eac52f6c8704b9ef79c92f2421fa238dd5df6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  new-chord-tremolo-engraver.cc -- implement Chord_tremolo_engraver
+  percent-repeat-engraver.cc -- implement Percent_repeat_engraver
 
   source file of the GNU LilyPond music typesetter
 
@@ -30,6 +30,7 @@
 class Percent_repeat_engraver : public Engraver
 {
   void typeset_perc ();
+  bool check_count_visibility (SCM count);
 public:
   TRANSLATOR_DECLARATIONS (Percent_repeat_engraver);
   
@@ -120,7 +121,7 @@ Percent_repeat_engraver::listen_percent (Stream_event *ev)
          /*
            don't warn about percent repeats: slash repeats are not
            exactly 1 or 2 measures long.
-          */
+         */
          return;
        }
       percent_event_ = ev;
@@ -147,7 +148,8 @@ Percent_repeat_engraver::process_music ()
          percent_->set_bound (LEFT, col);
 
          SCM count = percent_event_->get_property ("repeat-count");
-          if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats")))
+         if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats"))
+             && check_count_visibility (count))
            {
              percent_counter_
                = make_spanner ("PercentRepeatCounter", percent_event_->self_scm ());
@@ -167,8 +169,8 @@ Percent_repeat_engraver::process_music ()
          Item *double_percent = make_item ("DoublePercentRepeat", percent_event_->self_scm ());
 
          SCM count = percent_event_->get_property ("repeat-count");
-         if (count != SCM_EOL
-             && to_boolean (get_property ("countPercentRepeats")))
+         if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats"))
+             && check_count_visibility (count))
            {
              Item *double_percent_counter = make_item ("DoublePercentRepeatCounter",
                                                        percent_event_->self_scm ());
@@ -219,6 +221,14 @@ Percent_repeat_engraver::typeset_perc ()
     }
 }
 
+bool
+Percent_repeat_engraver::check_count_visibility (SCM count)
+{
+  SCM proc = get_property ("repeatCountVisibility");
+  return (ly_is_procedure (proc) && to_boolean (scm_call_2 (proc,
+                                                           count,
+                                                           context ()->self_scm ())));
+}
 
 
 void
@@ -239,7 +249,8 @@ ADD_TRANSLATOR (Percent_repeat_engraver,
                /* read */
                "countPercentRepeats "
                "currentCommandColumn "
-               "measureLength ",
+               "measureLength "
+               "repeatCountVisibility ",
 
                /* write */
                "forbidBreak "
index 49f22c1b3de9010015e172cf9a5928f7b22d4471..b1be75d1cb2777c5d52cd4b6209c3f156e26260f 100644 (file)
@@ -522,6 +522,8 @@ automatically when an output definition (a @code{\score} or
   explicitKeySignatureVisibility = #all-visible
   implicitTimeSignatureVisibility = #end-of-line-invisible
   
+  repeatCountVisibility = #all-repeat-counts-visible
+  
   autoBeamSettings = #default-auto-beam-settings
   autoBeaming = ##t
   autoBeamCheck = #default-auto-beam-check
index c00d2da87a189c4220c5bcd8da81ec8bee7fbb13..d0c46511975aed0cf1adad8f8cc08e4b14818258 100644 (file)
@@ -1,5 +1,8 @@
-.SUFFIXES: .xml
+.SUFFIXES: .xml .mxl
 
 
 $(outdir)/%.ly:  %.xml
        $(PYTHON) $(MUSICXML2LY) -o $@ $<
+
+$(outdir)/%.ly:  %.mxl
+       $(PYTHON) $(MUSICXML2LY) -z -o $@ $<
index a0668ce825711a246965c8030774350235ebe615..0f63330a210764038c4b195bbdd52f56b7d396a9 100644 (file)
@@ -1 +1 @@
-default: $(OUT_LY_FILES)
+default:
index 0844fa730e8e27fdb128494413e67e170a7a4ee5..55cb25b75b7ad6187250d59422c49d44c471856f 100644 (file)
@@ -1,10 +1,8 @@
 # rules for directories with MusicXML files.
 
-MUSICXML_FILES := $(call src-wildcard,*.xml)
-# LY_FILES=$(addprefix $(outdir)/, $(addsuffix .ly, $(MUSICXML_FILE)))
-# LY_FILES = $(MUSICXML_FILES:%.xml=$(outdir)/%.ly)
-OUT_LY_FILES = $(MUSICXML_FILES:%.xml=$(outdir)/%.ly)
-
+MUSICXML_FILES = $(call src-wildcard,*.xml)
+MUSICMXL_FILES = $(call src-wildcard,*.mxl)  # Allow .mxl for compressed files
+OUT_LY_FILES = $(sort ${MUSICXML_FILES:%.xml=$(outdir)/%.ly} ${MUSICMXL_FILES:%.mxl=$(outdir)/%.ly} ${EXTRA_OUT_LY_FILES})
 OUT_FILES = $(OUT_LY_FILES)
 
-EXTRA_DIST_FILES += $(MUSICXML_FILES)
+EXTRA_DIST_FILES += $(MUSICXML_FILES) $(MUSICMXL_FILES)
index e94bf30e7625c5c5d6cd0863d46607805d9b13e0..842d6fb8bd4d1e2a8d27b1a879aaf9ac8bbd39b0 100644 (file)
@@ -2823,6 +2823,11 @@ def conv (str):
     str = re.sub (r"\\bigger", r"\\larger", str)
     return str
 
+@rule ((2, 11, 64), "systemSeparatorMarkup -> system-separator-markup")
+def conv (str):
+    str = re.sub (r'systemSeparatorMarkup', r'system-separator-markup', str)
+    return str
+
 # Guidelines to write rules (please keep this at the end of this file)
 #
 # - keep at most one rule per version; if several conversions should be done,
index 34174e12666b34afc37e03d777ffd5d17cf83a27..f731dec17bba32e0043424a03ac3c4cbac468316 100644 (file)
@@ -18,21 +18,6 @@ import optparse
 # Users of python modules should include this snippet
 # and customize variables below.
 
-# We'll suffer this path init stuff as long as we don't install our
-# python packages in <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]
 
 # Python 2.5 only accepts strings with proper Python internal encoding
 # (i.e. ASCII or Unicode) when writing to stdout/stderr, so we must
index df54f70106c113f3e30681093e043511d3e2e59f..22cfcdcd53888461e0020fd778ed0eae861b8cf2 100644 (file)
@@ -582,8 +582,8 @@ class RepeatedMusic:
             self.music = SequentialMusic ()
             self.music.elements = music
         else:
-            warning (_ ("unable to set the music %(music)s for the repeat %(repeat)s" % \
-                            {'music':music, 'repeat':self}))
+            warning (_ ("unable to set the music %(music)s for the repeat %(repeat)s") % \
+                            {'music':music, 'repeat':self})
     def add_ending (self, music):
         self.endings.append (music)
     def print_ly (self, printer):
@@ -706,6 +706,7 @@ class Layout:
 class ChordEvent (NestedMusic):
     def __init__ (self):
         NestedMusic.__init__ (self)
+        self.after_grace_elements = None
         self.grace_elements = None
         self.grace_type = None
     def append_grace (self, element):
@@ -713,6 +714,16 @@ class ChordEvent (NestedMusic):
             if not self.grace_elements:
                 self.grace_elements = SequentialMusic ()
             self.grace_elements.append (element)
+    def append_after_grace (self, element):
+        if element:
+            if not self.after_grace_elements:
+                self.after_grace_elements = SequentialMusic ()
+            self.after_grace_elements.append (element)
+
+    def has_elements (self):
+        return [e for e in self.elements if
+               isinstance (e, NoteEvent) or isinstance (e, RestEvent)] != []
+
 
     def get_length (self):
         l = Rational (0)
@@ -739,6 +750,9 @@ class ChordEvent (NestedMusic):
         other_events = [e for e in self.elements if
                 not isinstance (e, RhythmicEvent)]
 
+        if self.after_grace_elements:
+            printer ('\\afterGrace {')
+
         if self.grace_elements and self.elements:
             if self.grace_type:
                 printer ('\\%s' % self.grace_type)
@@ -746,6 +760,15 @@ class ChordEvent (NestedMusic):
                 printer ('\\grace')
             # don't print newlines after the { and } braces
             self.grace_elements.print_ly (printer, False)
+        elif self.grace_elements: # no self.elements!
+            warning (_ ("Grace note with no following music: %s") % self.grace_elements)
+            if self.grace_type:
+                printer ('\\%s' % self.grace_type)
+            else:
+                printer ('\\grace')
+            self.grace_elements.print_ly (printer, False)
+            printer ('{}')
+
         # Print all overrides and other settings needed by the 
         # articulations/ornaments before the note
         for e in other_events:
@@ -777,6 +800,10 @@ class ChordEvent (NestedMusic):
         for e in other_events:
             e.print_after_note (printer)
 
+        if self.after_grace_elements:
+            printer ('}')
+            self.after_grace_elements.print_ly (printer, False)
+
         self.print_comment (printer)
             
 class Partial (Music):
@@ -805,7 +832,7 @@ class BarLine (Music):
 
         if self.bar_number > 0 and (self.bar_number % 10) == 0:
             printer.dump ("\\barNumberCheck #%d " % self.bar_number)
-        else:
+        elif self.bar_number > 0:
             printer.print_verbatim (' %% %d' % self.bar_number)
         printer.newline ()
 
index a7cf59730ff1de9c6886816df7b42abdcb5bfb23..d2af5d5f2e10717d236b4e8f7ad0a6f753e2b3ba 100644 (file)
@@ -205,6 +205,15 @@ class Identification (Xml_node):
                 software.append (s.get_text ())
         return software
 
+    def get_file_description (self):
+        misc = self.get_named_children ('miscellaneous')
+        for m in misc:
+            misc_fields = m.get_named_children ('miscellaneous-field')
+            for mf in misc_fields:
+                if hasattr (mf, 'name') and mf.name == 'description':
+                    return mf.get_text () 
+        return None
+
 
 
 class Duration (Music_xml_node):
@@ -259,15 +268,27 @@ class Measure_element (Music_xml_node):
            return None
 
     def is_first (self):
-       cn = self._parent.get_typed_children (self.__class__)
-       cn = [c for c in cn if c.get_voice_id () == self.get_voice_id ()]
+        # Look at all measure elements (previously we had self.__class__, which
+        # only looked at objects of the same type!
+       cn = self._parent.get_typed_children (Measure_element)
+        # But only look at the correct voice; But include Attributes, too, which
+        # are not tied to any particular voice
+       cn = [c for c in cn if (c.get_voice_id () == self.get_voice_id ()) or isinstance (c, Attributes)]
        return cn[0] == self
 
 class Attributes (Measure_element):
     def __init__ (self):
        Measure_element.__init__ (self)
        self._dict = {}
+        self._original_tag = None
 
+    def is_first (self):
+       cn = self._parent.get_typed_children (self.__class__)
+        if self._original_tag:
+            return cn[0] == self._original_tag
+        else:
+            return cn[0] == self
+    
     def set_attributes_from_previous (self, dict):
        self._dict.update (dict)
         
@@ -340,7 +361,15 @@ class Note (Measure_element):
     def __init__ (self):
         Measure_element.__init__ (self)
         self.instrument_name = ''
-        
+        self._after_grace = False
+    def is_grace (self):
+        return self.get_maybe_exist_named_child (u'grace')
+    def is_after_grace (self):
+        if not self.is_grace():
+            return False;
+        gr = self.get_maybe_exist_typed_child (Grace)
+        return self._after_grace or hasattr (gr, 'steal-time-previous');
+
     def get_duration_log (self):
         ch = self.get_maybe_exist_named_child (u'type')
 
@@ -510,6 +539,9 @@ class Part (Music_xml_node):
         measure_start_moment = now
         is_first_measure = True
         previous_measure = None
+        # Graces at the end of a measure need to have their position set to the
+        # previous number!
+        pending_graces = []
        for m in measures:
             # implicit measures are used for artificial measures, e.g. when
             # a repeat bar line splits a bar into two halves. In this case,
@@ -539,6 +571,8 @@ class Part (Music_xml_node):
                 # and should not change the current measure position!
                 if isinstance (n, FiguredBass):
                     n._divisions = factor.denominator ()
+                    n._when = now
+                    n._measure_position = measure_position
                     continue
 
                 if isinstance (n, Hash_text):
@@ -561,6 +595,12 @@ class Part (Music_xml_node):
                     
                    if n.get_name() == 'backup':
                        dur = - dur
+                        # reset all graces before the backup to after-graces:
+                        for n in pending_graces:
+                            n._when = n._prev_when
+                            n._measure_position = n._prev_measure_position
+                            n._after_grace = True
+                        pending_graces = []
                    if n.get_maybe_exist_typed_child (Grace):
                        dur = Rational (0)
 
@@ -578,6 +618,23 @@ class Part (Music_xml_node):
 
                 n._when = now
                 n._measure_position = measure_position
+
+                # For all grace notes, store the previous note,  in case need
+                # to turn the grace note into an after-grace later on!
+                if isinstance(n, Note) and n.is_grace ():
+                    n._prev_when = last_moment
+                    n._prev_measure_position = last_measure_position
+                # After-graces are placed at the same position as the previous note
+                if isinstance(n, Note) and  n.is_after_grace ():
+                    # TODO: We should do the same for grace notes at the end of 
+                    # a measure with no following note!!!
+                    n._when = last_moment
+                    n._measure_position = last_measure_position
+                elif isinstance(n, Note) and n.is_grace ():
+                    pending_graces.append (n)
+                elif (dur > Rational (0)):
+                    pending_graces = [];
+
                 n._duration = dur
                 if dur > Rational (0):
                     last_moment = now
@@ -599,6 +656,12 @@ class Part (Music_xml_node):
                     if instrument:
                         n.instrument_name = part_list.get_instrument (instrument.id)
 
+            # reset all graces at the end of the measure to after-graces:
+            for n in pending_graces:
+                n._when = n._prev_when
+                n._measure_position = n._prev_measure_position
+                n._after_grace = True
+            pending_graces = []
             # Incomplete first measures are not padded, but registered as partial
             if is_first_measure:
                 is_first_measure = False
@@ -615,6 +678,7 @@ class Part (Music_xml_node):
         attributes = copy.copy (attr)
         attributes._children = [];
         attributes._dict = attr._dict.copy ()
+        attributes._original_tag = attr
         # copy only the relevant children over for the given staff
         for c in attr._children:
             if (not (hasattr (c, 'number') and (c.number != staff)) and
index e3245477eedf5c1d6860405b16c09c2339f24228..29a633ef3c7b34735fb23c8e028ebee08c72234f 100644 (file)
@@ -374,6 +374,10 @@ context.")
      (repeatCommands ,list? "This property is a list of commands
 of the form @code{(list 'volta @var{x})}, where @var{x} is a string or
 @code{#f}.  @code{'end-repeat} is also accepted as a command.")
+     (repeatCountVisibility ,procedure? "A procedure taking as
+arguments an integer and context, returning whether the corresponding
+percent repeat number should be printed when @code{countPercentRepeats}
+is set.")
      (restNumberThreshold ,number? "If a multimeasure rest has more
 measures than this, a number is printed.")
 
index 975d42582ffbd2544bcba886724cbe5dbf63f8f3..aa3b6ee197082361a0576ef3e67930849c2151a7 100644 (file)
        (side-axis . ,Y)
        (self-alignment-X . ,LEFT)
        (outside-staff-priority . 500)
-       (extra-spacing-width . '(+inf.0 . -inf.0))
+       (extra-spacing-width . (+inf.0 . -inf.0))
        (meta . ((class . Item)
                 (interfaces . (side-position-interface
+                               text-interface
                                font-interface))))))
 
     
index 22e4377046c47ed3034bea7a7c52ebc9a055a2a3..dcb1129004a7fb9a0c6cc523793c6535acdee967 100644 (file)
@@ -202,6 +202,13 @@ centered, X==1 is at the right, X == -1 is at the left."
 
 (define-public (first-bar-number-invisible barnum) (> barnum 1))
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; percent repeat counters
+
+(define-public ((every-nth-repeat-count-visible n) count context) (= 0 (modulo count n)))
+
+(define-public (all-repeat-counts-visible count context) #t)
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; break visibility
 
index 3e25bdaaee3b46059ce22a90eb1578cb8b7b6426..f83fd18d31d93052f068f5ac8b8a2f191d36d5b6 100644 (file)
        ;; 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)
index 7affd1bd255326f44dea783ead14fc295388a49e..ea9804184f5001ce5bb7590cb357e77a55039a43 100644 (file)
@@ -174,7 +174,7 @@ string."""
         error_file_write ('\n'
                           + _ ("Error while converting")
                           + '\n'
-                          + _ ("Stopping at last succesful rule")
+                          + _ ("Stopping at last successful rule")
                           + '\n')
 
     return (last_conversion, str)
index 2a48cd12c13f2cc752620ad31da23853e9ca68a9..6ee2a755e26b8c0c7dc53c3e53b441ccf8cbc137 100644 (file)
@@ -199,6 +199,8 @@ def extract_score_information (tree):
         set_if_exists ('encodingdate', ids.get_encoding_date ())
         set_if_exists ('encoder', ids.get_encoding_person ())
         set_if_exists ('encodingdescription', ids.get_encoding_description ())
+        
+        set_if_exists ('texidoc', ids.get_file_description ());
 
         # Finally, apply the required compatibility modes
         # Some applications created wrong MusicXML files, so we need to 
@@ -1556,17 +1558,24 @@ class LilyPondVoiceBuilder:
         self.pending_multibar = Rational (0)
         self.ignore_skips = False
         self.has_relevant_elements = False
+        self.measure_length = (4, 4)
 
     def _insert_multibar (self):
+        layout_information.set_context_item ('Score', 'skipBars = ##t')
         r = musicexp.MultiMeasureRest ()
-        r.duration = musicexp.Duration()
-        r.duration.duration_log = 0
-        r.duration.factor = self.pending_multibar
+        lenfrac = Rational (self.measure_length[0], self.measure_length[1])
+        r.duration = rational_to_lily_duration (lenfrac)
+        r.duration.factor *= self.pending_multibar / lenfrac
         self.elements.append (r)
         self.begin_moment = self.end_moment
         self.end_moment = self.begin_moment + self.pending_multibar
         self.pending_multibar = Rational (0)
-        
+
+    def set_measure_length (self, mlen):
+        if (mlen != self.measure_length) and self.pending_multibar:
+            self._insert_multibar ()
+        self.measure_length = mlen
+
     def add_multibar_rest (self, duration):
         self.pending_multibar += duration
 
@@ -1632,6 +1641,8 @@ class LilyPondVoiceBuilder:
             duration_factor = 1
             duration_log = {1: 0, 2: 1, 4:2, 8:3, 16:4, 32:5, 64:6, 128:7, 256:8, 512:9}.get (diff.denominator (), -1)
             duration_dots = 0
+            # TODO: Use the time signature for skips, too. Problem: The skip 
+            #       might not start at a measure boundary!
             if duration_log > 0: # denominator is a power of 2...
                 if diff.numerator () == 3:
                     duration_log -= 1
@@ -1697,6 +1708,13 @@ def musicxml_step_to_lily (step):
     else:
        return None
 
+def measure_length_from_attributes (attr, current_measure_length):
+    mxl = attr.get_named_attribute ('time')
+    if mxl:
+        return attr.get_time_signature ()
+    else:
+        return current_measure_length
+
 def musicxml_voice_to_lily_voice (voice):
     tuplet_events = []
     modes_found = {}
@@ -1729,6 +1747,8 @@ def musicxml_voice_to_lily_voice (voice):
     voice_builder = LilyPondVoiceBuilder ()
     figured_bass_builder = LilyPondVoiceBuilder ()
     chordnames_builder = LilyPondVoiceBuilder ()
+    current_measure_length = (4, 4)
+    voice_builder.set_measure_length (current_measure_length)
 
     for n in voice._elements:
         if n.get_name () == 'forward':
@@ -1746,6 +1766,50 @@ def musicxml_voice_to_lily_voice (voice):
                 voice_builder.add_partial (a)
             continue
 
+        is_chord = n.get_maybe_exist_named_child ('chord')
+        is_after_grace = (isinstance (n, musicxml.Note) and n.is_after_grace ());
+        if not is_chord and not is_after_grace:
+            try:
+                voice_builder.jumpto (n._when)
+            except NegativeSkip, neg:
+                voice_builder.correct_negative_skip (n._when)
+                n.message (_ ("Negative skip found: from %s to %s, difference is %s") % (neg.here, neg.dest, neg.dest - neg.here))
+
+        if isinstance (n, musicxml.Barline):
+            barlines = musicxml_barline_to_lily (n)
+            for a in barlines:
+                if isinstance (a, musicexp.BarLine):
+                    voice_builder.add_barline (a)
+                elif isinstance (a, RepeatMarker) or isinstance (a, EndingMarker):
+                    voice_builder.add_command (a)
+            continue
+
+        # Continue any multimeasure-rests before trying to add bar checks!
+        # Don't handle new MM rests yet, because for them we want bar checks!
+        rest = n.get_maybe_exist_typed_child (musicxml.Rest)
+        if (rest and rest.is_whole_measure ()
+                 and voice_builder.pending_multibar > Rational (0)):
+            voice_builder.add_multibar_rest (n._duration)
+            continue
+
+
+        # print a bar check at the beginning of each measure!
+        if n.is_first () and n._measure_position == Rational (0) and n != voice._elements[0]:
+            try:
+                num = int (n.get_parent ().number)
+            except ValueError:
+                num = 0
+            if num > 0:
+                voice_builder.add_bar_check (num)
+                figured_bass_builder.add_bar_check (num)
+                chordnames_builder.add_bar_check (num)
+
+        # Start any new multimeasure rests
+        if (rest and rest.is_whole_measure ()):
+            voice_builder.add_multibar_rest (n._duration)
+            continue
+
+
         if isinstance (n, musicxml.Direction):
             for a in musicxml_direction_to_lily (n):
                 if a.wait_for_note ():
@@ -1770,59 +1834,19 @@ def musicxml_voice_to_lily_voice (voice):
                 pending_figured_bass.append (a)
             continue
 
-        is_chord = n.get_maybe_exist_named_child ('chord')
-        if not is_chord:
-            try:
-                voice_builder.jumpto (n._when)
-            except NegativeSkip, neg:
-                voice_builder.correct_negative_skip (n._when)
-                n.message (_ ("Negative skip found: from %s to %s, difference is %s") % (neg.here, neg.dest, neg.dest - neg.here))
-            
         if isinstance (n, musicxml.Attributes):
-            if n.is_first () and n._measure_position == Rational (0):
-                try:
-                    number = int (n.get_parent ().number)
-                except ValueError:
-                    number = 0
-                if number > 0:
-                    voice_builder.add_bar_check (number)
-                    figured_bass_builder.add_bar_check (number)
-                    chordnames_builder.add_bar_check (number)
-
             for a in musicxml_attributes_to_lily (n):
                 voice_builder.add_command (a)
-            continue
-
-        if isinstance (n, musicxml.Barline):
-            barlines = musicxml_barline_to_lily (n)
-            for a in barlines:
-                if isinstance (a, musicexp.BarLine):
-                    voice_builder.add_barline (a)
-                elif isinstance (a, RepeatMarker) or isinstance (a, EndingMarker):
-                    voice_builder.add_command (a)
+            measure_length = measure_length_from_attributes (n, current_measure_length)
+            if current_measure_length != measure_length:
+                current_measure_length = measure_length
+                voice_builder.set_measure_length (current_measure_length)
             continue
 
         if not n.__class__.__name__ == 'Note':
-            error_message (_ ('unexpected %s; expected %s or %s or %s') % (n, 'Note', 'Attributes', 'Barline'))
-            continue
-
-        rest = n.get_maybe_exist_typed_child (musicxml.Rest)
-        if (rest
-            and rest.is_whole_measure ()):
-
-            voice_builder.add_multibar_rest (n._duration)
+            n.message (_ ('unexpected %s; expected %s or %s or %s') % (n, 'Note', 'Attributes', 'Barline'))
             continue
-
-        if n.is_first () and n._measure_position == Rational (0):
-            try: 
-                num = int (n.get_parent ().number)
-            except ValueError:
-                num = 0
-            if num > 0:
-                voice_builder.add_bar_check (num)
-                figured_bass_builder.add_bar_check (num)
-                chordnames_builder.add_bar_check (num)
-
+        
         main_event = musicxml_note_to_lily_main_event (n)
         if main_event and not first_pitch:
             first_pitch = main_event.pitch
@@ -1837,15 +1861,31 @@ def musicxml_voice_to_lily_voice (voice):
             ev_chord = musicexp.ChordEvent()
             voice_builder.add_music (ev_chord, n._duration)
 
+        # For grace notes:
         grace = n.get_maybe_exist_typed_child (musicxml.Grace)
-        if grace:
+        if n.is_grace ():
+            is_after_grace = ev_chord.has_elements () or n.is_after_grace ();
+            is_chord = n.get_maybe_exist_typed_child (musicxml.Chord)
+
             grace_chord = None
-            if n.get_maybe_exist_typed_child (musicxml.Chord) and ev_chord.grace_elements:
-                grace_chord = ev_chord.grace_elements.get_last_event_chord ()
-            if not grace_chord:
-                grace_chord = musicexp.ChordEvent ()
-                ev_chord.append_grace (grace_chord)
-            if hasattr (grace, 'slash'):
+
+            # after-graces and other graces use different lists; Depending on
+            # whether we have a chord or not, obtain either a new ChordEvent or 
+            # the previous one to create a chord
+            if is_after_grace:
+                if ev_chord.after_grace_elements and n.get_maybe_exist_typed_child (musicxml.Chord):
+                    grace_chord = ev_chord.after_grace_elements.get_last_event_chord ()
+                if not grace_chord:
+                    grace_chord = musicexp.ChordEvent ()
+                    ev_chord.append_after_grace (grace_chord)
+            elif n.is_grace ():
+                if ev_chord.grace_elements and n.get_maybe_exist_typed_child (musicxml.Chord):
+                    grace_chord = ev_chord.grace_elements.get_last_event_chord ()
+                if not grace_chord:
+                    grace_chord = musicexp.ChordEvent ()
+                    ev_chord.append_grace (grace_chord)
+
+            if hasattr (grace, 'slash') and not is_after_grace:
                 # TODO: use grace_type = "appoggiatura" for slurred grace notes
                 if grace.slash == "yes":
                     ev_chord.grace_type = "acciaccatura"
@@ -1906,23 +1946,39 @@ def musicxml_voice_to_lily_voice (voice):
                 frac = (1,1)
                 if mod:
                     frac = mod.get_fraction ()
-                
+
                 tuplet_events.append ((ev_chord, tuplet_event, frac))
 
-            slurs = [s for s in notations.get_named_children ('slur')
-                if s.get_type () in ('start','stop')]
-            if slurs:
-                if len (slurs) > 1:
-                    error_message (_ ('cannot have two simultaneous slurs'))
+            # First, close all open slurs, only then start any new slur
+            # TODO: Record the number of the open slur to dtermine the correct
+            #       closing slur!
+            endslurs = [s for s in notations.get_named_children ('slur')
+                if s.get_type () in ('stop')]
+            if endslurs and not inside_slur:
+                endslurs[0].message (_ ('Encountered closing slur, but no slur is open'))
+            elif endslurs:
+                if len (endslurs) > 1:
+                    endslurs[0].message (_ ('Cannot have two simultaneous (closing) slurs'))
+                # record the slur status for the next note in the loop
+                if not grace:
+                    inside_slur = False
+                lily_ev = musicxml_spanner_to_lily_event (endslurs[0])
+                ev_chord.append (lily_ev)
+
+            startslurs = [s for s in notations.get_named_children ('slur')
+                if s.get_type () in ('start')]
+            if startslurs and inside_slur:
+                startslurs[0].message (_ ('Cannot have a slur inside another slur'))
+            elif startslurs:
+                if len (startslurs) > 1:
+                    startslurs[0].message (_ ('Cannot have two simultaneous slurs'))
                 # record the slur status for the next note in the loop
                 if not grace:
-                    if slurs[0].get_type () == 'start':
-                        inside_slur = True
-                    elif slurs[0].get_type () == 'stop':
-                        inside_slur = False
-                lily_ev = musicxml_spanner_to_lily_event (slurs[0])
+                    inside_slur = True
+                lily_ev = musicxml_spanner_to_lily_event (startslurs[0])
                 ev_chord.append (lily_ev)
 
+
             if not grace:
                 mxl_tie = notations.get_tie ()
                 if mxl_tie and mxl_tie.type == 'start':
@@ -1984,7 +2040,7 @@ def musicxml_voice_to_lily_voice (voice):
             for a in ornaments:
                 for ch in a.get_all_children ():
                     ev = musicxml_articulation_to_lily_event (ch)
-                    if ev: 
+                    if ev:
                         ev_chord.append (ev)
 
             dynamics = notations.get_named_children ('dynamics')
index b2e27613a4ed8bf796496ce5c05cea62ea5a8a6c..5d954e67f4ff5bc24ecfb0400f51fdbaa79f2649 100644 (file)
@@ -1034,7 +1034,7 @@ AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [
     if test -z "$PYTHON_CFLAGS" -a "$PYTHON_CONFIG" != "no"; then
         # Clean out junk: http://bugs.python.org/issue3290
        # Python headers may need some -f* flags, leave them in.
-       PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\)\(\w\|-\)\+//g'`
+       PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\|m\)\(\w\|-\|=\)\+//g'`
        PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
     fi