\version "2.11.35" % Each measure displays one feature of partcombine \header { title = "Stress-testing \partcombine" subtitle = "Each measure tests one feature of the part combination" } % TODO: % * spanners (slurs, hairpins, etc) in swallowed voices) % * lyrics % * also check the existing regression tests for important features! \new Staff << \key c \major \time 4/4 \partcombine \relative c'' { \dynamicUp % Whole-measure Rests are combined R1 | %2 % Solo 2, voice 1 is quiet, dynamics directions taken from the correct voice R1 | %3 % a2, notes of same length are put on one stem, different lengths use % different stems (with appropriate stem directions) b2.\f b4 | %4 % the other voice might have a short rest where one voice has a note => % should not be interpreted as solo, in particular, when the "solo" instrument % has a long note, during which the other instrument sets in % BUG: Currently, the note IS detected as a solo b1 | %5 % one voice might stop earlier and have a rest, while the other instrument % keeps playing -> display the rest b1 | %6 % If both instruments play the same notes, use unisono "a2", notes are printed % only once b2. r4 | %7 % dotted notes in unisono should only show the dots once (reported bug % on mailinglist, fixed now) b2. b8. r16 | %8 % notes differing only by different accidentals should be shown twice with % the correct accidentals % BUG: This does not work, only the accidentals of the first voice are displayed! gis4 g4 ges4 geses4 | %9 % voice crossings don't ever combine the stems to make the instrument clear c,4 d2 fis8 fis8 | %10 % beams with crossings don't combine, either, other beams should (except % when they have a unisono note, because otherwise the second instrument % would not know that it should also play the unisono note!) fis8[ fis fis fis] c'[ c] c[ c] | %11 % chord combination should be customizable, currently, only notes differing % at most an octave are combined (difference hardcoded to 8!) c4 f a c | %12 % if a note has a long note and the other plays short notes with rests, % the rests should be shown c,1 | %13 % time, clef and key signatures might be different! How to handle them??? % C urrently, the settings of the first voice are used \time 2/2 \key f \major \clef "bass" bes4 c d2 | %14 % BUG: clef changes are NOT applied if the associated voice is quiet % immediately afterwards, but the other voice has notes! \time 4/4 \key c \major \clef "treble" % Minimum length of solo for solo-detection should be configuration % (currently, even a single note is detected as a solo!) r4 r4 r4 c4 | %15 \clef "treble" % Minimum length of solo for solo-detection should be configuration % (currently, even a single note is detected as a solo!) c4 r4 r4 c4 | %16 % Rests with different length at the beginning of a measure cause problems! % They can't be combined easily, but they are also not printed out both! r4. c8 r8 c8 c4 | %17 % BUG: if one voice has a long note at the very end, and the other instrument % plays a note, lilypond wrongly detects this as a solo of the other % instrument!!! g1 | } \relative c' { \dynamicDown R1 | %2 f2.\f f4 | %3 f2. f8 f8 | %4 r4 f4 f2 | %5 f2. r4 | %6 f2. r4 | %7 b2. b8. r16 | %8 g4 gis4 g4 ges4 | %9 c4 g2 g8 c,8 | %10 c'8[ g fis c] [c' g] g[ c,] | %11 b'4 g a c, | %12 g'4 r g r | %13 \key g\major fis2 g | %14 \key c\major g4 g4 g g | %15 g4 g4 g g | %16 r8 g8 g4 r4 g4 | %17 c,2 c2 \bar"|." } >>