[MEI-L] @trans.diat and @trans.semi

Michael Scott Cuthbert cuthbert at MIT.EDU
Sat Feb 11 20:10:51 CET 2012


The processes Craig and Perry suggest work well for simple cases, but break on more difficult instruments, keys, and transpositions. A Db piccolo (very common in band music) might technically be -1 diatonic, -1 chromatic, but it’s quite often 0 diatonic, -1 chromatic when the scores go even a bit towards the sharp side.  Even the B-flat clarinet often will choose to be an A# clarinet when the orchestra is in 5, 6, or 7 sharps.  And in pieces for band, learning ensembles, etc., individual notes will be written enharmonically.  So that a concert-pitch passage, C, D, D#, E#, F# might be written as D, E, F, G, Ab so as to avoid needing using double sharps or augmented intervals.  Notating the score in written pitch is the better way to avoid this problem.  

 

Best,

Myke

 

From: mei-l-bounces at lists.uni-paderborn.de [mailto:mei-l-bounces at lists.uni-paderborn.de] On Behalf Of Craig Sapp
Sent: Friday, February 10, 2012 21:23
To: Music Encoding Initiative
Subject: Re: [MEI-L] @trans.diat and @trans.semi

 

Hi Perry,

The specification seems to come from Humdrum trans tool (which in turn comes from some 2D algorithm of transposition):
    http://musicog.ohio-state.edu/Humdrum/commands/trans.html
And I have a transposing program for Humdrum which implements the base-40 method of transposing:
   http://extra.humdrum.org/man/transpose

Example: Here is the score for a B-flat clarinet in Humdrum format:

**kern
*ITrd1c2
*Iclars
*k[]
*C:
4c
4d
4e
4f
4g
4a
4b
4cc
*-

The pitches are listed in concert pitch (the convention for Humdrum scores), and there is an interpretation "*ITrd1c2" which gives instructions on how to transpose to written pitch:
    *I = instrument code
    Tr = transpose
    d1 = go up one diatonic step
    c2 = while going up two chromatic steps
So C->D, C#->D# and so on.

> So, for the clarinet in B♭should the values be trans.diat="1" and trans.semi="2", or should they read trans.diat="-1" and trans.semi="-2" ?

I would say that using trans.diat="1" and trans.semi="2" would be better (particularly if the pitches in the file are listed in concert pitch).  And these numbers then represent the transposition amount/direction which is necessary to transpose from concert pitch to written pitch of the transposing instrument.  Since B-flat clarinets "sound down" they need to "transpose up" to get to the written pitch, so the intervals should be positive.

In the documentation you should say something like "the transposition values indicate the size and direction of the transposition interval used to transpose concert pitches into written pitches for the transposing instrument."

If you want the transposition to mean the size/direction to go from written to concert (which is the same size but reverse direction), then you switch the wording (although I would prefer convert->written transposition to be encoded in the score).

In Humdrum files, the pitches are always expected to be in concert pitch.  I use my transpose program mentioned above to transpose written parts into sounding parts when going from OMR encoded data into a final score.  In that case I have a "-I" option which stores the reverse of the written->sounding transposition in the final score (I transpose down the B-flat part to concert pitch, but I store the upward direction indicating how to go from concert pitch to written).   

Are transposing parts always encoded in concert pitch in MEI?  If so, then the sounding->written direction for transposition is very much preferred.  If the MEI files can have either concert or written pitch, then what to do is not as clear.  I would have the transposition value always from concert->written, and then some indication of what state the score/part is in, either "written" or "sounding". If the score is in Written mode, then the transpose interval would be negated to convert to concert pitch, and if the score is in Concert mode, then the transpose interval would be used as-is to transpose to Written mode.

<<In this case, the second set of values would be more helpful; that is, given a pitch of D4, to get a performable concert pitch, subtract the value of trans.semi. (Or perhaps more technically correct, add -2 semitones.)>>

You or I are confused about this sentence.  Given the pitch of D4 written for a B-flat clarinet, you need to apply both trans.semi and trans.diat to calculate the concert pitch (not just trans.semi; both are needed to get the correct transposed diatonic pitch name).  In terms of calculating a base-12 MIDI pitch, you can just use trans.semi, but for correct diatonic spelling you will need both: go down one diatonic step while doing down two chromatic steps which is D4 to C4 (down a major second): D->C:d->c#->c.

-=+Craig



2012/2/9 Roland, Perry (pdr4h) <pdr4h at eservices.virginia.edu>

Looking at the documentation for these 2 attributes, it isn't exactly clear what values are expected.  The documentation for trans.diat says,

  "records the amount of diatonic pitch shift, e.g. C to C♯ = 0, C to D♭ = 1.
  Transposition requires both trans.diat and trans.semi attributes in order to distinguish
  the difference, for example, between a transposition from C to C♯ and one from C to D♭."

while for trans.semi, it says,

 "contains the amount of pitch shift in semitones, C to C♯ = 1, C to D♭ = 1.
 Transposition requires both trans.diat and trans.semi attributes in order to distinguish
 the difference, for example, between a transposition from C to C♯ and one from C to D♭."

So, for the clarinet in B♭should the values be trans.diat="1" and trans.semi="2", or should they read trans.diat="-1" and trans.semi="-2" ?

It seems to me that the first set of values is somewhat redundant since the written pitches for the clarinet are already recorded as one step "too high" with respect to concert pitch. This redundancy, however, could be used to mean that the written pitches are not errors; that is, that an F# on the clarinet staff is correct in the concert key of C.

Another way to approach these attributes (which is, by the way, used in the musicxml2mei XSL transform) is to use them to indicate the amount of "correction" necessary to achieve the concert pitch from the written one.  In this case, the second set of values would be more helpful; that is, given a pitch of D4, to get a performable concert pitch, subtract the value of trans.semi. (Or perhaps more technically correct, add -2 semitones.)

So, having made the decision once before (when writing the XSL transform), it would be convenient to make the documentation agree with the already-made decision.  However, if anyone has a good argument, other than tradition, why this decision (and the documentation) should be reversed, please speak up.

--
p.

__________________________
Perry Roland
Music Library
University of Virginia
P. O. Box 400175
Charlottesville, VA 22904
434-982-2702 (w)
pdr4h (at) virginia (dot) edu
_______________________________________________
mei-l mailing list
mei-l at lists.uni-paderborn.de
https://lists.uni-paderborn.de/mailman/listinfo/mei-l

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.uni-paderborn.de/pipermail/mei-l/attachments/20120211/3a05d31a/attachment.html>


More information about the mei-l mailing list