bug-lilypond
[Top][All Lists]
Advanced

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

Re: Issue 1009 in lilypond: \transpose causes crash (std::logic_error)


From: lilypond
Subject: Re: Issue 1009 in lilypond: \transpose causes crash (std::logic_error)
Date: Wed, 10 Feb 2010 19:13:45 +0000


Comment #3 on issue 1009 by address@hidden: \transpose causes crash (std::logic_error)
http://code.google.com/p/lilypond/issues/detail?id=1009

I have a hard time picturing what transposing { a b c d } from disis to
c should result in.  A scale in disis contains

disis eisis fisisis gisis aisis bisis cisisis disis

c in this scale would transpose to beseses in a c scale.  There is no
such thing as beseses.  Incidentally, there is no such thing as cisisis
either, but Lilypond should only balk when it has to produce something
impossible, not just think about it.

Since transposition does not just deal with absolute pitches but with
enharmonicity as well, there is no way to properly transpose this in the
demanded manner.  Aborting is the sanest choice.

Now let's look at the other scales/transforms

aisis: { a b c d } -> { ceses beses eseses deses }
bisis: { a b c d } -> { beseses ceses deseses eseses }
cisis: { a b c d } -> { aeses beses ceses deses }
disis: { a b c d } -> { geses aeses beseses ceses }
eisis: { a b c d } -> { feses geses aeseses beseses }
fisis: { a b c d } -> { eses fes geses aeses }
gisis: { a b c d } -> { deses eses feses geses }

You'll see that Lilypond only balks at those transforms which contain
impossible notes.

There are no notes Lilypond could produce.  Aborting is the right
choice.  The best thing you can hope to do is to produce a nicer error
message.

The notation manual contains under "Transpose" a snippet that transposes
using "minimal accidentals".  It is conceivable that employing this
snippet will avert the abort.

Anyway, there is no valid output possible for the given input. Aborting is the only sensible thing to do. The only thing that could possibly be improved is the error
message when aborting.

So this is not priority "Critical", but "Low", and it is not a "Defect" but an
enhancement request.

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings




reply via email to

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