Transpose a note by a spelled interval, keeping the spelling the interval
names.
Unlike transposeNote, which picks a letter from the semitone count,
the diatonic number decides the letter here: transposing C by an augmented
second gives D#, not Eb.
Both arguments are taken in whatever form the caller holds them — the text a
field carries, the plain data the library returns, or the class that wraps
it — as the class mirror of this operation already did.
Transpose a note by a spelled interval, keeping the spelling the interval names.
Unlike transposeNote, which picks a letter from the semitone count, the diatonic number decides the letter here: transposing C by an augmented second gives D#, not Eb.
Both arguments are taken in whatever form the caller holds them — the text a field carries, the plain data the library returns, or the class that wraps it — as the class mirror of this operation already did.