lilypond-user
[Top][All Lists]
Advanced

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

Re: Different time signatures on staves bug?


From: Jean Abou Samra
Subject: Re: Different time signatures on staves bug?
Date: Mon, 31 Oct 2022 23:19:13 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1

Le 31/10/2022 à 22:31, Hajo Baess a écrit :
Hello all,

I need to typeset a lied (voice/piano) where temporarily the time
signatures change from 4/4 for both parts to 2/4 for the voice and to
6/8 for the piano and back to 4/4 again.
In the NR there is a nice example how to achieve this with equal
measure lenghts for the different time signatures.

I have tried to apply this model to my use case, but something does not
work as expected. The problem shows when you do not have have all the
same values in your last bar. In that case Lilypond only accepts less
than 6 crotchets there. Whatever I have tried with

\set Staff.timeSignatureFraction = x/x

did not work, and I have no idea what is wrong here. To make things
worse: when I fiddle with the NR example and add a line with not all
the same values in 9/8, the same thing happens, too (see the added
third line there), and it even reacts to markup.

I hope that it is not a bug, but that I may have got something wrong.
But if it is one, the example is unusable as a global model.

Could someone here, please, with more experience than I have, help me?
Otherwise I am stuck with my project for the moment... I attach a
minimal example.

Thank you very much in advance



Judging from the layout of your code, you are misunderstanding
the syntax of \scaleDurations. It is not something like \time
that affects the following music. \scaleDurations takes two
arguments, a scale and the music to scale. Taking an excerpt
from your code:

    \scaleDurations 2/3
    \repeat unfold 4 { c16[ c c c c c] } c8 c c \repeat unfold 6 {c16}\bar "|."


2/3 is the first argument to \scaleDurations. Then the element
just after it is \repeat unfold 4 { ... }, so that is taken
as the second argument, and only this music is scaled, not
the other notes that follow after the end of this \repeat block.
Rather, you want to do

    \scaleDurations 2/3 {
      \repeat unfold 4 { c16[ c c c c c] } c8 c c \repeat unfold 6 {c16}\bar "|."
    }

Namely, enclose all elements that you want to scale in a sequential
music expression with { ... } so that they are combined into a single
expression that you can pass to \scaleDurations.

Best,
Jean




reply via email to

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