Hi Tim,
OK, it is a bit of a frig if you fancy giving it a try, but I think I
can make it happen and it depends on what version of Lilypond you are
using.
Find the file part-combiner.scm - it should be in the scm directory of
your Lilpond installation.
Search for the string ";; voice crossings:" - should be about line 300.
This should be before it:
(< chord-threshold (ly:pitch-steps
(ly:pitch-diff (car pitches1)
(car pitches2))))
Add the following *after* the above snippet:
(= 1 (ly:pitch-steps
(ly:pitch-diff (car pitches1)
(car pitches2))))
(= 0 (ly:pitch-steps
(ly:pitch-diff (car pitches1)
(car pitches2))))
You should be able to just use \partcombine. The code above decides
that if the pitch difference is 1 or 0 then separate the notes.
I will try to get something more official added to the distribution
that is configurable to make this happen optionally.
Let me know how you get on.
Regards,
Ralph