Vaughan McAlley <vaug...@mcalley.net.au> writes:

> Hi,
>
> Setting the beat structure for beam subdivision seems to persist through
> time signature changes. I think it would be preferable to reset everything
> at a change of time signature, just like what happens to
> beamExceptions.

Which is what happens.  It's just that timing changes happen in the
Timing context (without further user intervention, that is at Score
level) and you override it in the Voice context (which is going to
become really funny once another Voice gets involved).

Try the following:

\version "2.20.0"

\score {
  \relative c' {
    \time 4/4
    c8 d16 e f32 e d c d e f g a8 b c4 |
    \bar "||"
    \time 9/8
    c,8^"Expected behaviour" d e e f g g a b |
    \bar "||"
    \break
    \time 4/4
    \set subdivideBeams = ##t
    \set Timing.baseMoment = #(ly:make-moment 1/8)
    \set Timing.beatStructure = 2,2,2,2
    c,8 d16 e f32 e d c d e f g a8 b c4 |
    \bar "||"
    % \time 3,3,3 9/8 does work
    \time 3,3,3 9/8
    \set subdivideBeams = ##f % this makes no difference
    c,8^"!!!" d e e f g g a b |
    \bar "||"
    % This should be unnecessary and it is
    %% \set baseMoment = #(ly:make-moment 1/8)
    %% \set beatStructure = 3,3,3
    c,8^"Just as good" d e e f g g a b |
    \bar "||"
  }
  \layout {}
}
-- 
David Kastrup

Reply via email to