Is transposeDiatonic in instruments.xml useful?

• Nov 15, 2020 - 09:14
Reported version
S5 - Suggestion

I am attempting to bring the documentation for the instruments file up to date (V3.5). I have found a number of problems that may be of no importance. Each is being reported as a separate ticket.

The existing documentation states “Used for transposing instruments and define the diatonic and chromatic intervals that will be used on playback and while switching to concert pitch.”

This is untrue, only the chromatic transposition is used for both.

I’m OK with chromatic transposition for instruments and for musical passages (=change key). I’m OK with diatonic transposition for writing fugues, for example. But I have an existential problem with diatonic transposition for instruments.

In the standard instruments.xml we find that an E trumpet has 4 and 2 for the transpositions whereas an Eb cornet, with a chromatic transposition of 3, has the same diatonic transposition of 2. Fortunately, changing the value of transposeDiatonic seems to have no effect on the transposition, but there are other effects.

The Stave/Part properties do not allow the diatonic transposition to be changed when you change the chromatic transposition, so why do you need to set it here?
Back in 2013 Marc Sabatella said “transposeDiatonic should help MuseScore decide on spelling” [node: 23002,title=" Adding new instrument - two questions "]. If this were true, you should be able to set transposeDiatonic in the Stave/Part properties menu.

All though transposeDiatonic does not seem to be serve any useful purpose, not having the “right” value or leaving it out (for the Bb soprano saxophone in the screenshot below) has an unfortunate effect on the note spelling in concert pitch view, as suggested by Marc.
Setting the chromatic transposition in the Stave/Part menu fixes the problem showing that transposeDiatonic is a completely unnecessary complication. But we are stuck with it.

PS it does not seem to matter if transposeDiatonic is "wrong" by one or two octaves.


Tags View Changes

Link above corrected: Adding new instrument - two questions

Indeed, normally (?) the diatonic transpositioning is calculated from the cromatic one in src/engraving/libmscore/utils.cpp, line 583 ff.
But that does "Finds the most likely diatonic interval for a semitone distance. Uses the most common diatonic intervals.", so maybe in cases were this might be wrong provide an override in instruments.xml?

It is, BTW, optional in MusicXML (and led to Transposing Instrument scores from XML)