lilypond-user
[Top][All Lists]
Advanced

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

Re: Nested transposition


From: David Wright
Subject: Re: Nested transposition
Date: Fri, 12 Mar 2021 15:26:44 -0600
User-agent: Mutt/1.10.1 (2018-07-13)

On Fri 12 Mar 2021 at 11:08:34 (-0800), Flaming Hakama by Elaine wrote:
> > Am Fr., 12. März 2021 um 11:35 Uhr schrieb Peter Toye:
> >
> > I am trying to engrave a transposed song. It's written without key
> > signature but is very tonal. It starts in C and ends in C#. I want to
> > transpose it down a minor third. The part in C is fine, but the part in C#
> > ends up as A## and there are far too many double-sharps for it to be
> > performable.
> >
> > I found the 'minimal accidental' snippet but that looks as if it messes up
> > the tonality - a mixture of A sharp and B flat.
> >
> > I tried the code below, which get the note names right but the octaves go
> > completely wrong. Is this a bug? It would be a useful feature if it could
> > be corrected.
> >
> > \version "2.22.0"
> >
> > \language "english"
> >
> > {
> >   \transpose c a,
> >   \relative {
> >     c'4 d e f g a b c
> >     \transpose as bf
> >     {cs, ds es fs gs as bs cs}
> >
> >   }
> > }
> 
> %{
> 
> The main issue here is that you are using \relative in a lax way.

IMHO in the wrong way.

> Which is to say, in your example,
> the overall expression uses relative,
> but you don't specify an octave.
> 
> This means you are using the default.
> Which may be fine, but it can help to be explicit,

It's completely explicit. The pitch of the first note
is interpreted as an absolute pitch.

> and this also gives you a way to fix octaves quickly.

I would agree that it's a method of reusing a sequence
of notes at different pitches, by using what I called
"floating pitches" in my earlier post. But with a literal
expression, like \relative { g e d c }, fixing the octave
is just as easily done by \relative { g' e d c } as by
\relative c' { g e d c }  →  \relative c'' { g e d c }.

I would maintain that it's easier to check   { g'   by eye
than the   c' { g   and   c'' { g   constructs, both of
which involve a mental calculation.

> Next, the expression you are trying to transpose
> is also not clearly defined what octave it is in.

It's perfectly clear. The pitch of the first note,
and all the others, is the absolute pitch as written.

> You are relying on it matching the octave of the
> previous expression.

It's not a matter of relying on something that you might
get right or wrong, depending on your skill. It will
never work.

> Best practice for anything being sent to a function
> is to define the octave of the music expression,
> and likewise the duration of the first note.
> 
> So, this:
> 
> \relative {
> c'4 d e f g a b c
>     \transpose as bf
>     {cs, ds es fs gs as bs cs}

       ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ this is in absolute pitches
> }
> 
> Would be more carefully notated as:
> 
> \relative c' {
>     c4 d e f g a b c
>     \transpose as bf \relative c' {
>         cs4 ds es fs gs as bs cs
          ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ this is in relative pitches
>     }
> }

Care and first notes don't come into it if the structure is wrong.

By using larger intervals, the difference between absolute and
relative interpretations becomes impossible to overlook.

The attached illustrates some LP-interpreting in action.
I used floating notes to show their complications with the first
two examples. The rest are really to show how \relative treats
things included within it. I haven't bothered to show a \relative
contained inside \transpose { … } as Christian had already covered
that.

Cheers,
David.

Attachment: reldef.ly
Description: Text document

Attachment: reldef.pdf
Description: Adobe PDF document


reply via email to

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