home | tune search | software | learn abc | discuss | about | blog | Starbound/LOTRO | contact |
[abc standard: home | current | route-map | updating | proposals]
This shows you the differences between two versions of the page.
abc:standard:v2.1:proposals:transposition:v7 [2012/02/17 21:18] cwalshaw created |
abc:standard:v2.1:proposals:transposition:v7 [2012/02/17 23:22] cwalshaw |
||
---|---|---|---|
Line 1: | Line 1: | ||
// ** Transposition proposal: summary ** // | // ** Transposition proposal: summary ** // | ||
- | This page contains the sixth draft of a proposal to extend the transcription capabilities within abc (following hundreds of messages on the abcusers mailing list in Sep 2011 and subsequently in Dec 2011 - Feb 2012). It is based on numerous comments, suggestions and proposals from lots of contributors. | + | This page contains the seventh draft of a proposal to extend the transcription capabilities within abc (following hundreds of messages on the abcusers mailing list in Sep 2011 and subsequently in Dec 2011 - Feb 2012). It is based on numerous comments, suggestions and proposals from lots of contributors. |
- | This sixth version does a number of things (and is quite a big step from the fifth): | + | The seventh draft is a minor change from the sixth and just modifies the way ''I:transpose'' instructions interact with each other (they override rather than combine). The only sections affected are [[#scope and inheritance of transpose instructions]], [[#enharmonic alternatives for transposition]] and [[#transposition for transposing instruments]]. |
+ | |||
+ | The sixth version however does a number of things (and is quite a big step from the fifth): | ||
* separates the music-centric and instrument-centric versions of transposition into two distinct systems: | * separates the music-centric and instrument-centric versions of transposition into two distinct systems: | ||
* one containing the high-level (closer to the musician) ''instrument'' modifier that operates on the ''V:'' and ''K:'' fields and provide syntax for transposing instruments | * one containing the high-level (closer to the musician) ''instrument'' modifier that operates on the ''V:'' and ''K:'' fields and provide syntax for transposing instruments | ||
Line 199: | Line 201: | ||
* an ''I:transpose'' instruction in the tune body is applied to the current voice from where it appears to the end of the tune. | * an ''I:transpose'' instruction in the tune body is applied to the current voice from where it appears to the end of the tune. | ||
- | Unusually, rather than overriding any existing transposition setting, each successive ''I:transpose'' instruction combines with it (or with a high-level ''instrument'' modifier) by adding together their semitone values. | + | Each ''I:transpose'' setting overrides the score and / or sound transposition individually as follows: |
+ | * an ''I:transpose-score'' instruction overrides any existing ''I:transpose-score'' instruction, but leaves ''I:transpose-sound'' unchanged; | ||
+ | * an ''I:transpose-sound'' instruction overrides any existing ''I:transpose-sound'' instruction, but leaves ''I:transpose-score'' unchanged; | ||
+ | * an ''I:transpose <n>'' instruction is equivalent to ''I:transpose-score <n>'' and ''I:transpose-sound <n>''. | ||
- | // Example: // The following two lines are considered identical (spaces added for easy comparison); here the effect of the second ''I:transpose'' instruction is to change the transposition to 5 (= 7 - 2): | + | // Example 1: // If both ''I:transpose'' instructions are of the same type then second simply overrides the first. Thus the following two lines are considered identical (spaces added for easy comparison): |
- | [K:C] CDE| [I:transpose 7]CDE| [I:transpose -2]CDE| | + | [K:C] CDE| [I:transpose 7]CDE| [I:transpose 5]CDE| |
- | [K:C] CDE| GAB| FGA| | + | [K:C] CDE| GAB| FGA| |
- | + | ||
- | As a consequence of this combining rule: | + | // Example 2: // If the ''I:transpose'' instructions are different then the override is carried out indiviudally by sound or score. Thus the following two lines are considered identical: |
- | * ''I:transpose 0'' has no effect (other than on enharmonic alternatives - see [[#enharmonic alternatives for transposition|below]]); | + | [I:transpose 7][I:transpose-sound 5] |
- | * to cancel an ''I:transpose'' instruction, you must include another one which negates it. | + | |
- | + | ||
- | // Example: // The following two lines are considered identical (spaces added for easy comparison): | + | |
- | [K:C] CDE| [I:transpose 7]CDE| [I:transpose -7] CDE| | + | |
- | [K:C] CDE| GAB| CDE| | + | |
- | + | ||
- | Also, in terms of combinations, ''I:transpose <n>'' is equivalent to ''I:transpose-score <n>'' and ''I:transpose-sound <n>''. | + | |
- | + | ||
- | // Example: // The following two lines are considered identical: | + | |
- | [I:transpose 7][I:transpose-sound -2] | + | |
[I:transpose-score 7][I:transpose-sound 5] | [I:transpose-score 7][I:transpose-sound 5] | ||
- | + | ||
- | Finally, the inclusion of an ''I:transpose-sound'' instruction has no effect on the ''I:transpose-score'' setting and vice-versa. | + | // Recommendation: // The examples above are somewhat esoteric, provided for the purpose of explaining the scoping rules and not to demonstrate typical usage. Indeed, an abc tune is difficult to read if it contains more than one ''I:tranpose'' instruction and so it is recommended to keep them to an absolute minimum, either once in the file header or in individual tune headers or possibly at the start of specific voices. |
- | + | ||
- | // Recommendation: // The examples above are somewhat esoteric, provided for the purpose of explaining the scoping rules and not to demonstrate typical usage. Indeed, an abc file is very difficult to read if more than one ''I:tranpose'' instruction is in force at any one time and so it is recommended to keep them to an absolute minimum, either once in the file header or in individual tune headers or possibly at the start of specific voices. | + | |
== Enharmonic alternatives for transposition == | == Enharmonic alternatives for transposition == | ||
Line 245: | Line 238: | ||
[I:transpose 2#][K:F#] % K:Ab despite the enharmonic indicator, as K:G# is outside the range of supported key signatures | [I:transpose 2#][K:F#] % K:Ab despite the enharmonic indicator, as K:G# is outside the range of supported key signatures | ||
- | In the event of ''I:tranpose'' instructions combining, the most recent enharmonic indicator (i.e. ''#'' or ''b'' or nothing) is used. | + | Note that enharmonic indicators apply to playback and typesetting alike, although they will only make a difference to the playback if the software can handle non-equal temperaments (since in equal temperament a Gb, say, will sound exactly the same as an F#). |
- | + | ||
- | // Example: // The following (esoteric) example demonstrates how enharmonic indicators combine: | + | |
- | K:C | + | |
- | I:transpose -1 % transposes to K:B (5 sharps) | + | |
- | I:transpose 0b % no change to the semitone transposition, but the enharmonic indicator changes the key to K:Cb (7 flats) | + | |
- | I:transpose 0 % no change to the semitone transposition, but the empty enharmonic indicator changes the key back to K:B | + | |
- | + | ||
- | Finally note that enharmonic indicators do also make sense for playback, although they will only make a difference to the sound if the software can handle non-equal temperaments (since in equal temperament a Gb, say, will sound exactly the same as an F#). | + | |
== Transposition for transposing instruments == | == Transposition for transposing instruments == | ||
Line 259: | Line 244: | ||
Generally, the low-level ''I:transpose'' instructions should not be used alongside the high-level ''instrument'' modifiers as they represent different approaches to transposition (included in the abc specification to support the diversity of views when the topic was discussed). However, they can be used together if the need arises to transpose a piece which contains one or more voices transcribed for transposing instruments. | Generally, the low-level ''I:transpose'' instructions should not be used alongside the high-level ''instrument'' modifiers as they represent different approaches to transposition (included in the abc specification to support the diversity of views when the topic was discussed). However, they can be used together if the need arises to transpose a piece which contains one or more voices transcribed for transposing instruments. | ||
- | The result of transposition applied to transposing instrument voices is, in effect, the same as if all the high-level ''instrument'' modifiers were translated into low-level ''I:transpose'' instructions and then the rules for [[#scope and inheritance of transpose instructions]] applied. The [[#instrument transposition table]] (in the appendices) lists the standard transposing instrument "keys" together with their corresponding ''I:transpose'' values. | + | The result of transposition applied to transposing instrument voices is, in effect, the same as if all the high-level ''instrument'' modifiers were to be translated into low-level ''I:transpose'' instructions and then combined with the ''I:transposition'' setting. |
+ | |||
+ | They are combined by adding their semitone values together and using the enharmonic indicator of the implied by the ''instrument'' modifier. The [[#instrument transposition table]] (in the appendices) lists the standard transposing instrument "keys" together with their corresponding ''I:transpose'' values together with implied enharmonic indicators. | ||
// Example: // Consider the following excerpt: | // Example: // Consider the following excerpt: | ||
+ | V:clarinet instrument=Bb | ||
I:transpose 7 | I:transpose 7 | ||
- | V:clarinet instrument=Bb | ||
- | K:C | ||
- | CDEF| | ||
- | The ''I:transpose 7'' directive is equivalent to applying ''I:transpose-score 7'' and ''I:transpose-sound 7''. Meanwhile the ''instrument=Bb'' assumes the default of ''I:abc-pitch concert'' and hence is equivalent to ''I:transpose-sound 2#''. The excerpt above is therefore directly equivalent to the following: | ||
- | I:transpose-score 7 | ||
- | I:transpose-sound 7 | ||
- | V:clarinet | ||
- | I:transpose-score 2# | ||
K:C | K:C | ||
CDEF| | CDEF| | ||
- | Finally the combined effect of the transpose instructions is equivalent to the following, where the two ''I:transpose-score'' instructions are added together to give 9 and the enharmonic indicator of the second is adopted: | + | The ''I:transpose 7'' directive is equivalent to applying ''I:transpose-score 7'' and ''I:transpose-sound 7''. Meanwhile the ''instrument=Bb'' assumes the default of ''I:abc-pitch concert'' and hence is equivalent to ''I:transpose-sound 2#'' (see the [[#instrument transposition table]]). Once the semitone values are added togther, the excerpt above is equivalent to the following: |
V:clarinet | V:clarinet | ||
I:transpose-score 9# | I:transpose-score 9# |