Am 17.08.2011 07:15, schrieb Vaughan McAlley:
Bertrand Bordage wrote:
Ok, I'll keep LilyPond's default beaming since it's the usual notation.
Thanks!
Bertrand
No! Beam it how _you_ like. Otherwise it’s like using Times font just
because it’s the Microsoft Word default :-) Just say you’re following
Debussy...
I ran into a similar problem recently with my first real-world use of
Lilypond. The music is from Mozart’s La Clemenza di Tito, and I needed
to follow Mozart’s beaming:
\relative c' {
\key f \major
\time 3/8
\clef "bass"
c8^"Default beaming (correct)" (e16 c g e) | c'8 [(\grace { d16[
c16 b c]} e16 c g e )] |
d'8\staccato c\staccato b\staccato c r r |
\autoBeamOff
\times 2/3 { d,16^"Manual beaming" [f a] }
\repeat unfold 2 { \times 2/3 { d,16 [f a] } }
\scaleDurations #'(2 . 3) {
g [ bes c] g [ bes c ] f, [ a c ] |
e, [ g c ] f, [ a c ] bes, [ d g ] |
c, [ e g ] c [ g e ] c [ bes g ] |
f [ a c ] f, [ a c ] f, [ a c ] |
f, [ bes d ] f [ d bes ] a [ c f ] |
c [ f a ] c, [ f a ] c, [ e g ] |
}
r32 f, [ a c ] f [ a c a ] f [ c a f ] |
r c [ e g ] c [ e g bes ] g [ e c bes ] |
r f [ a c ] f [ a c a ] f [ c a f ] |
r g [ b d ] g [ b d b ] g [ f d b ] |
r c, [ e g ] c [ e g e ] c [ g e c ] |
\autoBeamOn
\set Timing.beatStructure = #'(1 1 1)
\times 2/3 { d'16^"\set Timing.beatStructure doesn’t work" f a }
\times 2/3 { d,16 f a }
\times 2/3 { d,16 f a }
}
I now suspect \set Timing.beatStructure = #'(1 1 1) didn’t work
because Lilypond considers the beat to be a dotted quarter.
No, you have to add " \set Timing.beamExceptions = #'()" to clear the
default rules for the 3/8 time signature.
If you add this at the beginning you don't have to beam manually at all
in your example:
Try out:
\relative c' {
\key f \major
\time 3/8
\clef "bass"
c8^"Default beaming (correct)" (e16 c g e) | c'8 (\grace { d16
c16 b c } e16 c g e ) |
d'8\staccato c\staccato b\staccato c r r |
\set Timing.beamExceptions = #'()
\set Timing.beatStructure = #'(1 1 1)
\times 2/3 { d,16^"Changed beaming" f a }
\repeat unfold 2 { \times 2/3 { d,16 f a } }
\scaleDurations #'(2 . 3) {
g bes c g bes c f, a c |
e, g c f, a c bes, d g |
c, e g c g e c bes g |
f a c f, a c f, a c |
f, bes d f d bes a c f |
c f a c, f a c, e g |
}
r32 f, a c f a c a f c a f |
r c e g c e g bes g e c bes |
r f a c f a c a f c a f |
r g b d g b d b g f d b |
r c, e g c e g e c g e c |
\times 2/3 { d'16^"\set Timing.beatStructure _does_ work" f a }
\times 2/3 { d,16 f a }
\times 2/3 { d,16 f a }
}
I admit I also find this chapter of the NR (1.2.4 Beams) somewhat
confusing: If you're not already into the topic - and that's usually the
state when starting ;-) - you don't really see what you're missing.
I encourage you to delve into it, try to understand it piece by piece
while experimenting with small examples. I think it's definitely worth
the labour.
Two more hints to make your life easier:
1)
You don't have to write out the \times construct for every group.
Just surround the whole section by \times { } (as you did with the
\scaleDurations section).
Before this you add
\set tupletSpannerDuration = #'(ly:make-moment 1 8)
to tell Lilypond to print the brackets and numbers every 1/8th note.
2)
I'd suggest you don't use \scaleDurations here but rather triplets.
Because that's what you have here: triplets without numbers and
brackets, not a scaled duration.
While it is perfectly valid what you wrote I'd suggest to keep it
structurally simpler, which makes your code easier to understand (for
example if you return to it next year). I'd use \scaleDuration only in
more complex cases such as different tempos (e.g. 3/8 vs 4/8 in
different staves).
With 1) you have come around the need to write out \times more than once.
But you will also want to add
\override TupletBracket #'bracket-visibility = ##f
\override TupletNumber #'stencil = ##f
While this is effectively slightly more text to type, it makes your code
clearer in terms of structure, because you write what it actually means.
HTH
Urs
Beam
exceptions look quite Schemish and involving triplets would be beyond
me. For the time signature engraver there is no difference between a
"scherzo" 3/4 or 3/8 or one in three, but for musicians there is a
difference and maybe it should be easy to specify at the beginning,
something like:
\time 3/8
\setBeat 8 % ...or \setBeat 4.
Well, this is \set Timing.baseMoment, isn't it?
Also nice would be something that parses manual beaming into beam exceptions:
\specialBeaming { r32 f, [ a c ] f [ a c a ] f [ c a f ] | }
r c [ e g ] c [ e g bes ] g [ e c bes ] |
\EndSpecialBeaming
Disclaimer: I’m making all of these comments free from any knowledge
of Lilyponds internals :-)
Vaughan
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user