Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(859)

Issue 7304044: Issue 754: \transpose should not affect \transposition (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
11 years, 3 months ago by dak
Modified:
11 years, 2 months ago
Reviewers:
Keith
CC:
lilypond-devel_gnu.org
Visibility:
Public.

Description

Issue 754: \transpose should not affect \transposition This is just the first pitch, to get a view of the affected regtests involving quoting (the Midi will usually not be compared by the regtests).

Patch Set 1 #

Patch Set 2 : Invert meaning of instrumentTransposition again (cf 1965ca6b70aa) #

Patch Set 3 : Change quote-transposition regtest description #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+12 lines, -12 lines) Patch
M input/regression/quote-transposition.ly View 1 2 1 chunk +1 line, -2 lines 0 comments Download
M lily/note-performer.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M lily/quote-iterator.cc View 1 2 chunks +2 lines, -2 lines 0 comments Download
M ly/music-functions-init.ly View 1 1 chunk +5 lines, -3 lines 2 comments Download
M scm/define-context-properties.scm View 1 1 chunk +3 lines, -4 lines 0 comments Download

Messages

Total messages: 7
dak
Invert meaning of instrumentTransposition again (cf 1965ca6b70aa)
11 years, 3 months ago (2013-02-05 15:36:14 UTC) #1
dak
Change quote-transposition regtest description
11 years, 3 months ago (2013-02-05 16:32:32 UTC) #2
Keith
This works, including midi and cues between transposing instruments. I somewhat recommend doing only patch ...
11 years, 3 months ago (2013-02-06 07:11:34 UTC) #3
dak
On 2013/02/06 07:11:34, Keith wrote: > This works, including midi and cues between transposing instruments. ...
11 years, 3 months ago (2013-02-06 11:15:41 UTC) #4
dak
https://codereview.appspot.com/7304044/diff/6001/ly/music-functions-init.ly File ly/music-functions-init.ly (right): https://codereview.appspot.com/7304044/diff/6001/ly/music-functions-init.ly#newcode491 ly/music-functions-init.ly:491: instrumentSwitch = On 2013/02/06 07:11:34, Keith wrote: > If ...
11 years, 3 months ago (2013-02-06 11:15:48 UTC) #5
Keith
On 2013/02/06 11:15:41, dak wrote: > I don't see > the point in _not_ inverting ...
11 years, 2 months ago (2013-02-07 07:05:34 UTC) #6
dak
11 years, 2 months ago (2013-02-07 08:45:48 UTC) #7
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.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b