lilypond-devel
[Top][All Lists]
Advanced

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

Re: Issue 754: \transpose should not affect \transposition (issue 730404


From: dak
Subject: Re: Issue 754: \transpose should not affect \transposition (issue 7304044)
Date: Thu, 07 Feb 2013 08:45:48 +0000

On 2013/02/07 07:05:34, Keith wrote:
On 2013/02/06 11:15:41, dak wrote:
> I don't see
> the point in _not_ inverting the instrumentTransposition sign:
> our documentation gets it wrong, and all regtests are wrong.

I cannot follow the multiple negatives, but I can see some point to
/either/
convention.

A "convention" is something that gets adopted by consensus among
different choices.  Since neither the documentation writers nor the
programmers writing the regtests have joined that consensus, the
current behavior would seem to lack what it takes to make a
convention.

1) Storing the pitch written to sound middle C in
instrumentTransposition as in ver2.16 (i.e., the inverse of pitch we
use to describe the transposition, d' for clarinet in B-flat ) means
that all pitches in the stream are /written/ pitches.

Wrong.  instrumentTransposition does not store a written pitch, it
stores a pitch _difference_.  It does not correspond to any written
pitch.

The pitch in the event that sets instrumentTranposition would
usually be protected from \transpose, but users would retain the
capability to \set instrumentTransposition without the protection.

Frankly, it is probably a mistake to store instrumentTransposition in
the form of a pitch susceptible to transposition at all.  Maybe one
should instead store it as a pair or list of pitches and thus make it
impervious to transposition.  Or maybe property-setting commands
should have 'untransposable' set by default.  That probably makes a
_whole_ lot more sense than meddling with \transposition and
\instrumentSwitch.

Since all \transpose'd pitches
are written pitches, the effect is consistent.

Not at all.  \transposition c' should be a noop.  Instead it means
"break \transpose for the purpose of Midi and quoting".  That's not
consistent.

You can't transpose a piece as a whole if it contains any
\transposition.  That's the opposite of consistent.

Some people took advantage of that consistent behavior

<https://lists.gnu.org/archive/html/lilypond-user/2006-10/msg00074.html>

Sure, people will take advantage of _any_ _reproducible_ (not
necessarily "consistent") behavior.  But if we let this rule our
decisions, LilyPond is finished.  We can't improve it any more.

And since \transposition is slated to _not_ get warped by \transpose
in future, it seems like a weak substitute to now offer a
property-setting command as an alternative for breaking \transpose.
In fact (see above) I would propose that the property-setting command
behaves _identically_.

2) Storing the sounding pitch corresponding to written middle C in
the instrument part (i.e., storing directly the pitch we use to
describe the transposition) is simpler, and most of the
documentation thinks LilyPond works this way already.

It is not just the documentation.  It is also the regtests, apart from
the single regtest where Han-Wen convinced himself that this behavior
was worth describing and checking.  The description of this regtest as
far as I can see was not touched while the definition of
instrumentTransposition was changed back and forth.  That's creepy,
man.


https://codereview.appspot.com/7304044/



reply via email to

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