]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/part-combiner.scm (determine-split-list): split for voice
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 31 Mar 2004 10:49:00 +0000 (10:49 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 31 Mar 2004 10:49:00 +0000 (10:49 +0000)
crossings

* input/regression/part-combine-cross.ly: new file.

* scm/part-combiner.scm (make-part-combine-music): don't do
relative inside partcombine arguments.

ChangeLog
input/regression/part-combine-cross.ly [new file with mode: 0644]
input/regression/part-combine.ly
scm/part-combiner.scm

index e0a20fd85a2e82bcc997181b6fa50a86efef0270..09041daa4cf3c1f12a723fe88a99c877c3114fc4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2004-03-31  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
+       * scm/part-combiner.scm (determine-split-list): split for voice
+       crossings
+
+       * input/regression/part-combine-cross.ly: new file.
+
        * scm/part-combiner.scm (make-part-combine-music): don't do
        relative inside partcombine arguments.
 
diff --git a/input/regression/part-combine-cross.ly b/input/regression/part-combine-cross.ly
new file mode 100644 (file)
index 0000000..5565a88
--- /dev/null
@@ -0,0 +1,16 @@
+
+\header {
+    texidoc ="The part combiner stays apart for crossing voices.
+"
+    }
+
+\version "2.1.36"
+
+vone = \notes \relative a' { g4 g f f e e d d }
+vtwo = \notes \relative a' { e4 e f f g g a a }
+
+\score {
+   \partcombine \vone \vtwo
+   \paper { raggedright = ##t } 
+}
index fb2820dcb4776c4e495483ad297c6820b9939d12..383c2c915829f9c0a1ad5246801cb894361fb090 100644 (file)
@@ -21,5 +21,6 @@ vtwo = \notes \relative a' { f2 f4 f f2 g4 g c, f f  f  f f~ f ~ f
 
 \score {
    \partcombine \vone \vtwo
+   \paper { raggedright = ##t } 
 }
  
index 99c28ea57746f567af54f0ff8e3d0a333f53b52f..c7cca04df9bba1ba36f75f902819f5ee9d3c9016 100644 (file)
@@ -264,8 +264,15 @@ Only set if not set previously.
                 (if (and (= (length pitches1) (length pitches2)))
                     (if (and (pair? pitches1)
                              (pair? pitches2)
-                             (< chord-threshold (ly:pitch-steps
-                                                 (ly:pitch-diff (car pitches1) (car pitches2)))))
+                             (or
+                              (< chord-threshold (ly:pitch-steps
+                                                  (ly:pitch-diff (car pitches1)
+                                                                 (car pitches2))))
+
+                              ;; voice crossings:
+                              (> 0 (ly:pitch-steps (ly:pitch-diff (car pitches1)
+                                                                  (car pitches2))))
+                              ))
                         (put 'apart)
                         ;; copy previous split state from spanner state
                         (begin