Discussion:
ChordNames change measure widths
Malte Meyn
2018-11-12 16:05:17 UTC
Permalink
Hi list,

the following code produces measures of different length: The measures
containing a ChordName are narrower than the others. That’s a bug, isn’t it?

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.19.82"

<<
\chords {
s1*4 % try also s1*3 and see the line break move
g1*3
d1
}
\new Staff {
\repeat unfold 16 d''16
R1*8
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Malte Meyn
2018-11-12 16:30:21 UTC
Permalink
Post by Malte Meyn
Hi list,
the following code produces measures of different length: The measures
containing a ChordName are narrower than the others. That’s a bug, isn’t it?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.19.82"
Same for 2.12.3 to 2.18.2 and the last version that I compiled from master.
Torsten Hämmerle
2018-11-12 17:07:37 UTC
Permalink
Hi Malte,

That's strange, but it seems to be related to the *3 (length factor) used in
g1*3.
Restricting the use of these multipliers to full measure rests (i.e. writing
g1 s1*2) I couldn't reproduce the effect.
Can you confirm this?

Thanks
Torsten



--
Sent from: http://lilypond.1069038.n5.nabble.com/Bugs-f58488.html
Malte Meyn
2018-11-12 18:27:53 UTC
Permalink
Post by Torsten Hämmerle
Hi Malte,
That's strange, but it seems to be related to the *3 (length factor) used in
g1*3.
Restricting the use of these multipliers to full measure rests (i.e. writing
g1 s1*2) I couldn't reproduce the effect.
Can you confirm this?
I can confirm for that particular code example. But I found another
(slightly bigger) example that doesn’t need such scaled durations:

%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.19.82"

<<
\chords {
s1 s s s s s g
}
\relative {
\repeat unfold 32 b16
b4 b b b
\repeat unfold 16 b16
R1 R R R R
}
%%%%%%%%%%%%%%%%%%%%%%%%%
Thomas Morley
2018-11-12 20:26:24 UTC
Permalink
Post by Malte Meyn
Post by Torsten Hämmerle
Hi Malte,
That's strange, but it seems to be related to the *3 (length factor) used in
g1*3.
Restricting the use of these multipliers to full measure rests (i.e. writing
g1 s1*2) I couldn't reproduce the effect.
Can you confirm this?
I can confirm for that particular code example. But I found another
%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.19.82"
<<
\chords {
s1 s s s s s g
}
\relative {
\repeat unfold 32 b16
b4 b b b
\repeat unfold 16 b16
R1 R R R R
}
%%%%%%%%%%%%%%%%%%%%%%%%%
Hi,

it has nothing to do with ChordNames. See (although not that obvious):
<<
\new Staff
{
R\maxima
d''1
}
\new Staff {
\repeat unfold 16 d''16
R\maxima
}
Rather it's the SpacingSpanner created by the Spacing_engraver which
does bookkeeping of shortest starting and playing notes.
So in the example we have 16th as shortest and maxima as longest notes
and the intermediate duration of the whole note.
I think LilyPond does it's best to space the whole note correctly in
relation to maxima and 16tel. Don't forget there are not 8 times R1
but a _one_ MultiMeasureRest of length maxima which is _printed_ 8
times.

Though, the output is poor admittedly, but could be improved by
starting a new SpacingSpanner.
See NR 4.5.2 New spacing section. Makes for:

<<
\new Staff
{
R\maxima
d''1
}
%% hack to insert the line-break, if wanted
%\new Dynamics { s1*3 \break }
\new Staff {
\repeat unfold 16 d''16
\newSpacingSection
R\maxima
}
Cheers,
Harm

Loading...