lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: help to manually fix conversion errors for beatLength from ~2.10 to


From: Jean Abou Samra
Subject: Re: help to manually fix conversion errors for beatLength from ~2.10 to 2.22.0
Date: Sun, 15 Aug 2021 20:27:06 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

Le 15/08/2021 à 00:36, Kenneth Wolcott a écrit :
Hi;

I recently downloaded the Brahms Horn Trio from Mutopia.

When using Lilypond 2.22.0 convert-ly I encountered only two errors.

Not smart enough to convert beatLength.
Use baseMoment and beatStructure.

cat -n HornMvtIII.lyi | grep beatLength
     75     \set Score.beatLength = #(ly:make-moment 3 16)
     77     \set Score.beatLength = #(ly:make-moment 3 8)

I've looked in the Notation Reference.

I'm not at all sure how to manually perform the conversion.

Please advise.

Thanks,
Ken Wolcott


In older versions, the beaming inside a measure
was controlled by the beatLength property. Notes
would be beamed in groups of one beatLength each.
For example,

\relative c' {
  \time 12/8
  \set Score.beatLength = #(ly:make-moment 4 8)
  c8 c c c c c c c c c c c
}

would group notes by groups of 4 quarters, just like

\relative c' {
  \time 12/8
  c8[ c c c] c[ c c c] c[ c c c]
}

whereas

\relative c' {
  \time 12/8
  \set Score.beatLength = #(ly:make-moment 6 8)
  c8 c c c c c c c c c c c
}

was equivalent to

\relative c' {
  \time 12/8
  c8[ c c c c c] c[ c c c c c]
}

Then came version 2.13.29 and the interface changed.
Now, the groups in a measure need not necessarily have
the same length. The grouping is controlled by beatStructure,
which is a list of numbers indicating the length of
the successive groups in a measure expressed as multiples
of baseMoment. This is so you can do, for example,

\relative c' {
  \time 4/4
  \set Score.beatStructure = 3,3,2
  \set Score.baseMoment = #(ly:make-moment 1/8)
  \set Score.beamExceptions = #'()
  c8 c c c c c c c
}

(the necessity for the \set Score.beamExceptions = #'() is
explained at
http://lilypond.org/doc/v2.22/Documentation/notation/beams#setting-automatic-beam-behavior
).

The situation you have is summarized by the following snippet:

\version "2.22.1"

\relative c' {
  \key ees \major
  \time 6/8
  e'8[( b c])
  %\set Score.beatLength = #(ly:make-moment 3/16)
  des8.( c16) f aes |
  %\set Score.beatLength = #(ly:make-moment 3/8)
}

The purpose of the \set was to obtain the beaming
of the last 16th notes in a separate group. You
can just do it with explicit beams (most convenient as
it's just one measure in the whole score).

\version "2.22.1"

\relative c' {
  \key ees \major
  \time 6/8
  e'8[( b c])
  des8.( c16)[ f aes] |
}

Alternatively, you could use baseMoment and beatStructure
like so:

\relative c' {
  \key ees \major
  \time 6/8
  \set Score.baseMoment = #(ly:make-moment 3 16)
  \set Score.beatStructure = 2,1,1
  e'8( b c)
  des8.( c16) f aes |
  % Restore defaults
  \set Score.baseMoment = #(ly:make-moment 1 8)
  \set Score.beatStructure = 3,3
}

Best,
Jean



reply via email to

[Prev in Thread] Current Thread [Next in Thread]