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
abc:standard:v2.1:proposals:transposition:v11 [2014/06/18 09:50]
cwalshaw [13.1 Transposition operators]
abc:standard:v2.1:proposals:transposition:v11 [2014/06/18 09:54] (current)
cwalshaw [13.1 Transposition operators]
Line 71: Line 71:
   * ''​shift-sound=[+]<​note1><​note2>''​ transposes the playback according to the specified interval (the typeset score is not affected)   * ''​shift-sound=[+]<​note1><​note2>''​ transposes the playback according to the specified interval (the typeset score is not affected)
  
-When using ''​shift-score''​ and ''​shift-sound''​the transposition interval is specified by two notes, ''<​note1><​note2>''​. Here ''<​note1>''​ refers to the transcribed abc code and ''<​note2>''​ refers to the rendered output (i.e. the typeset score in the case of ''​shift-score''​ or the playback in the case of ''​shift-sound''​).+Transpositions are applied to notesgrace notes, chords and key signatures. 
 + 
 +The transposition interval is specified by two notes, ''<​note1><​note2>''​. Here ''<​note1>''​ refers to the transcribed abc code and ''<​note2>''​ refers to the rendered output (i.e. the typeset score in the case of ''​shift-score''​ or the playback in the case of ''​shift-sound''​).
  
 // Example: // In the following the typeset score is raised by a fifth and is rendered the same as if the abc code was transcribed as ''​[K:​D] efga''​. The playback is lowered by a tone and is rendered the same as if the abc code were ''​[K:​F] GABc''​. // Example: // In the following the typeset score is raised by a fifth and is rendered the same as if the abc code was transcribed as ''​[K:​D] efga''​. The playback is lowered by a tone and is rendered the same as if the abc code were ''​[K:​F] GABc''​.
   K:G shift-score=CG shift-sound=DC   K:G shift-score=CG shift-sound=DC
   ABcd   ABcd
 +
 +Note: The interval system is clear with regard to enharmonics so, for example, the interval ''​C''​ to ''​_G''​ is distinct from ''​C''​ to ''​^F''​. However, to compute transpositions it may be helpful to use the MusicXML concept of specifying the interval as a combination of diatonic steps and semitones. Both of these can be easily calculated and make it simple to work out what the resulting note is using the diatonic steps to give the letter and the semitones to indicate whether it is flat, natural or sharp.
 +
 +// Examples: //
 +''​C''​ to ''​^F''​ is 6 semitones in 3 diatonic steps - C to D, D to E, E to F (as opposed to ''​C''​ to ''​_G''​ which is 6 semitones in 4 diatonic steps). Using this interval:
 +  * Eb (''​_E''​ in abc code) transposes to A since A is 3 steps (letters) above E (in the cycle ABCDEFG) and the A is natural, since that note is 6 semitones above Eb
 +  * G transposes to C# (''​^c''​ in abc code) since C is 3 steps above G and C# is 6 semitones above G
 +  * C# transposes to F## (''​^^F''​ in abc code) since F is 3 steps above C and F## is 6 semitones above C#
 +
 +// Notes for developers: //
 +You should correct any transposition which goes beyond the specified abc limits to available key signatures, ''​K:​Cb''​ (7 flats) to ''​K:​C#''​ (7 sharps), and double/​triple accidentals. For example, in principle ''​K:​C#​ shift-score=CG''​ raises the key up to ''​K:​G#''​ (8 sharps), so to keep with the limits it should be rendered as ''​K:​Ab''​ (4 flats).
 +
 +// TODO (elsewhere in the standard): // Limit the range of key signatures supported by abc to ''​K:​Cb''​ (7 flats) through to ''​K:​C#''​ (7 sharps). (Also limit accidentals - e.g. double sharp and double flat accidentals should be supported, but triples are entirely optional.)
  
 To specify the same transposition for both score and sound, just use ''​shift=<​note1><​note2>''​ as a shorthand. To specify the same transposition for both score and sound, just use ''​shift=<​note1><​note2>''​ as a shorthand.
Line 93: Line 108:
   V:1 shift=CG   V:1 shift=CG
   V:1 shift=CD   V:1 shift=CD
- 
-All shift transposition are applied to notes, grace notes, chords and key signatures. 
- 
-Note: The interval system is clear with regard to enharmonics so, for example, the interval ''​C''​ to ''​_G''​ is distinct from ''​C''​ to ''​^F''​. However, to compute transpositions it may be helpful to use the MusicXML concept of specifying the interval as a combination of diatonic steps and semitones. Both of these can be easily calculated and make it simple to work out what the resulting note is using the diatonic steps to give the letter and the semitones to indicate whether it is flat, natural or sharp. 
- 
-// Examples: // 
-''​C''​ to ''​^F''​ is 6 semitones in 3 diatonic steps - C to D, D to E, E to F (as opposed to ''​C''​ to ''​_G''​ which is 6 semitones in 4 diatonic steps). Using this interval: 
-  * Eb (''​_E''​ in abc code) transposes to A since A is 3 steps (letters) above E (in the cycle ABCDEFG) and the A is natural, since that note is 6 semitones above Eb 
-  * G transposes to C# (''​^c''​ in abc code) since C is 3 steps above G and C# is 6 semitones above G 
-  * C# transposes to F## (''​^^F''​ in abc code) since F is 3 steps above C and F## is 6 semitones above C# 
- 
-// Notes for developers: // 
-You should correct any transposition which goes beyond the specified abc limits to available key signatures, ''​K:​Cb''​ (7 flats) to ''​K:​C#''​ (7 sharps), and double/​triple accidentals. For example, in principle ''​K:​C#​ shift-score=CG''​ raises the key up to ''​K:​G#''​ (8 sharps), so to keep with the limits it should be rendered as ''​K:​Ab''​ (4 flats). 
- 
-// TODO (elsewhere in the standard): // Limit the range of key signatures supported by abc to ''​K:​Cb''​ (7 flats) through to ''​K:​C#''​ (7 sharps). (Also limit accidentals - e.g. double sharp and double flat accidentals should be supported, but triples are entirely optional.) 
  
 ==== 13.2 Writing abc code for transposing instruments ==== ==== 13.2 Writing abc code for transposing instruments ====
abc/standard/v2.1/proposals/transposition/v11.txt · Last modified: 2014/06/18 09:54 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