crossings
* input/regression/part-combine-cross.ly: new file.
* scm/part-combiner.scm (make-part-combine-music): don't do
relative inside partcombine arguments.
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.
--- /dev/null
+
+\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 }
+}
+
\score {
\partcombine \vone \vtwo
+ \paper { raggedright = ##t }
}
(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