home tune search software learn abc discuss about blog Starbound/LOTRO contact  

  [abc standard: home | current | route-map | updating | proposals]

 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
abc:standard:v2.1:proposals:transposition:v2 [2012/01/06 08:55]
cwalshaw
abc:standard:v2.1:proposals:transposition:v2 [2012/01/06 11:05]
cwalshaw
Line 1: Line 1:
 // ** Transposition proposal: summary ** // // ** Transposition proposal: summary ** //
-  * This page contains ​an initial ​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 / Jan 2012).+  * This page contains ​a second ​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 / Jan 2012).
   * In essence it extends the initial scoretranspose syntax proposed there and is not dissimilar from a recent proposal outlined in message [[http://​tech.groups.yahoo.com/​group/​abcusers/​message/​6206|6026]].   * In essence it extends the initial scoretranspose syntax proposed there and is not dissimilar from a recent proposal outlined in message [[http://​tech.groups.yahoo.com/​group/​abcusers/​message/​6206|6026]].
   * It also introduces the concept of ''​shift-both''​ for semi-permanent [[#one-off transposition]] and fleshes out the ideas of [[#​enharmonic indicators]] and [[#writing abc code for transposing instruments]]   * It also introduces the concept of ''​shift-both''​ for semi-permanent [[#one-off transposition]] and fleshes out the ideas of [[#​enharmonic indicators]] and [[#writing abc code for transposing instruments]]
Line 11: Line 11:
 ==== 4.6 Clefs and transposition ==== ==== 4.6 Clefs and transposition ====
 // Additional text for [[abc:​standard:​v2.1#​clefs_and_transposition|section 4.6 Clefs and transposition]] // // Additional text for [[abc:​standard:​v2.1#​clefs_and_transposition|section 4.6 Clefs and transposition]] //
 +
 Clef and transposition information may be provided in the ''​K:''​ [[#​kkey|key]] and ''​V:''​ [[#multiple voices|voice]] fields. The general syntax is: Clef and transposition information may be provided in the ''​K:''​ [[#​kkey|key]] and ''​V:''​ [[#multiple voices|voice]] fields. The general syntax is:
  
Line 23: Line 24:
     * ''​[shift-score=<​semitones>​[<​enharmonic indicator>​]]''​ - for typesetting,​ shift the typeset score in the current voice. This setting does not affect playback.     * ''​[shift-score=<​semitones>​[<​enharmonic indicator>​]]''​ - for typesetting,​ shift the typeset score in the current voice. This setting does not affect playback.
     * ''​[shift-both=<​semitones>​[<​enharmonic indicator>​]]''​ - for typesetting and playback, combines both and is equivalent to ''​[shift-sound=<​semitones>​[<​enharmonic indicator>​]] [shift-score=<​semitones>​[<​enharmonic indicator>​]]''​.     * ''​[shift-both=<​semitones>​[<​enharmonic indicator>​]]''​ - for typesetting and playback, combines both and is equivalent to ''​[shift-sound=<​semitones>​[<​enharmonic indicator>​]] [shift-score=<​semitones>​[<​enharmonic indicator>​]]''​.
 +
 +// ... unchanged ... //
  
 The ''​shift-sound''​ parameter is equivalent to the ''​transpose''​ parameter of [[abc:​standard:​v2.1#​clefs and transposition|abc 2.1]] and either may be used. The ''​shift-sound''​ parameter is equivalent to the ''​transpose''​ parameter of [[abc:​standard:​v2.1#​clefs and transposition|abc 2.1]] and either may be used.
Line 44: Line 47:
 By extension, enharmonic indicators ''​bb''​ or ''##''​ could be used when the key shifts through 13 or more steps in the cycle (although this is unlikely to ever occur in practice). By extension, enharmonic indicators ''​bb''​ or ''##''​ could be used when the key shifts through 13 or more steps in the cycle (although this is unlikely to ever occur in practice).
  
-// TODO: // Include some sensible limits (here and elsewhere in the document) on what keys and accidentals should be supported by compliant software; e.g. double sharps and flats should be, but triples are optional.+// TODO: // Include some sensible limits (here and elsewhere in the document) on what keys and accidentals should be supported by compliant software; e.g. double sharps and flats should be, but triples are entirely ​optional.
  
 <​html><​a name="​semitone_shift_table"></​a></​html>​The following semitone shift table shows all the upward shifts (i.e. transposing //up// from the original key to the required key) between every key from ''​K:​Cb''​ (seven flats) through to ''​K:​C#''​ (seven sharps). <​html><​a name="​semitone_shift_table"></​a></​html>​The following semitone shift table shows all the upward shifts (i.e. transposing //up// from the original key to the required key) between every key from ''​K:​Cb''​ (seven flats) through to ''​K:​C#''​ (seven sharps).
Line 68: Line 71:
 To calculate downward shifts, look up the number in the table and subtract 12 from it (leaving the enharmonic indicator unchanged). To calculate downward shifts, look up the number in the table and subtract 12 from it (leaving the enharmonic indicator unchanged).
  
-// Example: // Transposing up from ''​K:​C''​ to ''​K:​G''​ (the row headed ''​K:​C''​ and the column headed ''​G''​) is a positive shift of 7 semitones and hence ''​K:​C shift-score=7''​ is used. Transposing down from ''​K:​C''​ to ''​K:​G''​ is (7 - 12) = -5 semitones.+// Example: // Transposing up from ''​K:​C''​ to ''​K:​G''​ (the row headed ''​K:​C''​ and the column headed ''​G''​) is a positive shift of 7 semitones and hence ''​K:​C shift-both=7''​ is used. Transposing down from ''​K:​C''​ to ''​K:​G''​ is (7 - 12) = -5 semitones
 + 
 +The shift can even go beyond an octave although in this case it may be clearer to use an additional ''​octave''​ parameter. 
 + 
 +// Example: // ''​K:​C shift-both=19''​ transposes up an octave and a fifth from ''​K:​C''​ to ''​K:​G''​ (i.e. the note ''​C''​ is transposed to the note ''​g''​). However, it might be clearer to write ''​K:​C shift-both=7 octave=1''​.
  
 Note that even though they are not specifically mentioned in the table, the semitone shifts also work for minor and modal keys, provided that both original and required key signatures are both minor or both in the same mode. Note that even though they are not specifically mentioned in the table, the semitone shifts also work for minor and modal keys, provided that both original and required key signatures are both minor or both in the same mode.
Line 129: Line 136:
 === 4.6.4 Shift directives === === 4.6.4 Shift directives ===
  
-// TODO // +== Shift to sounding == 
-''​I:​shift to-sounding''​+ 
 +When included in the tune header (or even the file header) the ''​I:​shift to-sounding''​ directive can be used to typeset a complete score (or even all the scores in a file) at //sounding pitch//. To accomplish this it effectively ignores all of the ''​shift-score''​ parameters and treats all of the ''​shift-sound''​ parameters as if they were ''​shift-both''​. 
 + 
 +// Example: // The following excerpts will be treated identically by both playback and typesetting software and will produce a typeset score at //sounding pitch// (the sound output is already at //sounding pitch// and so is unaffected). 
 +  ​I:shift to-sounding 
 +  ... 
 +  V:Bb clarinet 1 
 +  K:D shift-sound=-2 % transcribed at written pitch 
 +  DEFG| 
 +  V:Bb clarinet 2 
 +  K:C shift-score=2 ​ % transcribed at sounding pitch 
 +  CDEF| 
 + 
 +  V:Bb clarinet 1 
 +  K:D shift-both=-2 
 +  DEFG| 
 +  V:Bb clarinet 2 
 +  K:C 
 +  CDEF| 
 +   
 +== Shift none == 
 + 
 +When the ''​I:​shift none''​ directive is included in the file header (or tune header), all the ''​shift'' ​parameters in the file (or tune) will be ignored.
  
-Finally, if the ''​I:​shift none''​ directive is used in the file header (or tune header), all the ''​shift''​ parameters in the file (or tune) will be ignored. This could, for example, be used to typeset a complete score at //sounding pitch// from an abc transcription containing ​''​shift-score''​ parameters ​(which would otherwise shift their respective voices to //written pitch//).+// Comment: // The ''​I:​shift none''​ directive is most useful ​to cancel ​''​shift-both''​ parameters ​- see [[#one-off transposition]].
abc/standard/v2.1/proposals/transposition/v2.txt · Last modified: 2012/01/06 11:25 by cwalshaw
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki