Am 30.07.2010 11:57, schrieb Werner LEMBERG:
Is it possible to synchronize page breaks on facing pages of piano
duet music with primo on the right-hand side and secondo on the
left-hand side?
I also would be interested in this traditional way of engraving
piano duets, and didn't find anything in the archives of this forum
or in the documentation of Lilypond 2.13.28.
This is (unsolved) issue #902.
http://code.google.com/p/lilypond/issues/detail?id=902
Werner
I am also quite interested in such a feature and had already asked about
it on this list a few months ago.
Unfortunately there is no way to accomplish this automatically without a
completely new LilyPond feature as described in the above issue #902.
From my impression it is not very likely to get this feature soon, as
it is not really trivial and isn't probably regarded as very urgent
(compared to many other issues).
But as piano duets are a quite common thing in music literature I think
it would be good for LilyPond to have such a feature.
The best we could do now is to make our wish more concrete and specify
it as good as possible in order to raise the probability someone tackles
the task.
I suggest we discuss the options, requirements and possible solutions
here on the list (taking the description in issue #902 as a starting
point), and I will then make a summary and update the issue on the issue
tracker.
As a start, I have a few thoughts:
1)
As an intermediate solution it would be nice to have
- an option to lay out a score only on odd or even pages and
- an option to produce separate pdf files for each page.
As it is now in order to produce a piano duet score (hope I didn't
forget anything) I have to
- make two independent scores,
- find the possible page breaking manually
-* adjust the layout to be right or left aligned,
-* suppress all page numbers,
-* split the resulting pdf files,
- collate the individual pages of the two scores in one new book,
-* import the pdf in some page layout program and finally
-* add page numbers in some way using the page layout program.
With the two options all steps marked with a '*' would be unnecessary,
making the process much more straightforward.
2)
What do we need to achieve a piano duet score?
What we basically have is two separate but interdependent scores.
So we would need some new input syntax.
I would suggest to make this as generic as possible (although I don't
see any other use than piano duet, ATM).
In my perception it would be the smallest intrusion to nest the
construct into a \score block (the alternative being a replacement for
the \score command).
Something like:
\score {
<<
\duetScoreLeft { % (or any better naming scheme)
% ... Staves and music
}
\duetScoreRight {
% ...
}
>>
\layout {}
\midi {}
}
Adjustments made in the \layout block would apply to both scores.
\midi would treat the two scores as simultaneous.
The content of the two score parts is not necessarily one PianoStaff
each. Everything that is possible in a general score can also be used here.
3)
It might seem obvious, but of course the two scores must contain
compatible music.
Does this mean that both sides must have the same amount of music?
While this is conceptually self-evident it is easy to write input files
that don't comply to it.
So, how would we expect LilyPond to deal with this situation?
* Should it just try to make the best of the input and spit out
errors if it doesn't work out?
* Or should LilyPond make checks before trying to typeset the music?
* Should there be the possibility to manually insert checks of some
kind, similar to bar checks and barnumber checks?
What could they be like?
* In classical four hand music, both players have the same amount of
bars in the same \time
But of course this is no requirement for four hand music. Any
constellation of polyrhythmic, -metric, -timing music that can be
produced with LilyPond can be also used in four hand music.
* So I think LilyPond should just try to find synchronous possible
page breaking points and don't care about things like barnumbers etc.
If it's the same moment in time then the page can be broken.
If one score is longer than the other it just continues longer at
the end (but: what about: ragged-last-bottom = ##f ?)
* If LilyPond doesn't find a usable breaking point (because the
barlines don't coincide) it will probably squeeze everything on a
line.
But I'd say this really is the responsibility of the person
writing the input files.
So these are my thoughts on the matter.
Please comment, add, ask, disagree ...
The more we can narrow the issue down to a developer-compatible task
specification, the higher our chances are to get this feature someday ...
Best
Urs
_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user