Hello.
Mats, the voices code now works (those who were not following, see
gmane.comp.gnu.lilypond.general/25233), but now I want to make sure the beams
work fine as well.
Here is an example to illustrate what goes wrong:
1) This is the original Sibelius excerpt: http://sidosoft.ru/01sib.png
2) I press a button and my plugin generates the following code:
Chitarra = << {\new Voice { \relative c{
<e d' a' f'>2\fermata r8 <b'' e>16->\ff <b e>-> %1
\voiceOne e8 \oneVoice d c \voiceOne b \oneVoice c d %2
\voiceOne c \oneVoice b a \voiceOne gis \oneVoice a \times 2/3{b16( gis a} %3
}}}
{\new Voice {\voiceTwo \relative c{
s1*3/4 %1
<a c>8 s1*1/4 <e gis>8 s1*1/4 %2
<e a>8 s1*1/4 <b f'>8 s1*1/4 %3
}}} >>
3) We compile the .ly and here is what we get: http://sidosoft.ru/01ly.png
The beams in the second bar aren't nice because, well, the first 1/8 is in
\voiceOne (beams up) and the second and third are in \oneVoice (beams down,
because those noted are D and C above H, and we have instructed lilypond to
disregard voice two, right?), hence ugly angle.
Now the question: what is the right strategy for me now?
I understand that I can easily make the beams look right by either putting
something (r1 kind rests) into appropriate places in voice 2 (which contradicts
the intentions of the user) or I could inhibit generation of \oneVoice command
in those places (better). But now I need to come up with the logic for that.
What do you recommend?