lilyp...@googlecode.com writes: > Comment #2 on issue 1009 by Carl.D.Sorensen: \transpose causes crash > (std::logic_error) > http://code.google.com/p/lilypond/issues/detail?id=1009 > > disis (without the comma) causes terminate to be called the same as > disis, (with the comma) > > aisis, bisis, disis, and eisis all cause terminate to be called. > > cisis, fisis, and gisis do not cause terminate to be called.
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. -- David Kastrup _______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org http://lists.gnu.org/mailman/listinfo/bug-lilypond