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
abc:standard:v2.1:proposals:transposition:v15 [2014/08/29 12:33]
cwalshaw
abc:standard:v2.1:proposals:transposition:v15 [2015/02/11 17:07]
cwalshaw [13.4 Custom transposition for diatonic instruments]
Line 4: Line 4:
   * ''​K:''​ and ''​V:''​ modifiers in the same field no longer combine with each other   * ''​K:''​ and ''​V:''​ modifiers in the same field no longer combine with each other
   * the examples have been extended to include [[#Custom transposition for diatonic instruments|custom transposition]]   * the examples have been extended to include [[#Custom transposition for diatonic instruments|custom transposition]]
-  * new syntax for ''​concert-clef'',​ ''​I:​sounding-score''​ and ''​I:​concert-score''​ has been introduced - see [[#​Generating a concert pitch score]]+  * new syntax for ''​clef-concert'',​ ''​I:​sounding-score''​ and ''​I:​concert-score''​ has been introduced - see [[#​Generating a concert pitch score]]
  
 The important aspects of this proposal are the same as versions 10 - 13: The important aspects of this proposal are the same as versions 10 - 13:
Line 29: Line 29:
   clef=<​clef name> stafflines=<​lines>​ octave=<​number>​   clef=<​clef name> stafflines=<​lines>​ octave=<​number>​
     score=<​note1><​note2>​ sound=<​note1><​note2>​ shift=<​note1><​note2>​     score=<​note1><​note2>​ sound=<​note1><​note2>​ shift=<​note1><​note2>​
-    instrument=<​note1>​[;​abc@<​note2>​] ​concert-clef=<​clef name>+    instrument=<​note1>​[;​abc@<​note2>​] clef-concert=<clef name>
   ​   ​
 (where ''<​...>''​ denotes a value, ''​[...]''​ denotes an optional parameter). (where ''<​...>''​ denotes a value, ''​[...]''​ denotes an optional parameter).
Line 41: Line 41:
   * ''​shift=<​note1><​note2>''​ is a shorthand for ''​score=<​note1><​note2>​ sound=<​note1><​note2>''​ - for more information see [[#​transposition operators]];​   * ''​shift=<​note1><​note2>''​ is a shorthand for ''​score=<​note1><​note2>​ sound=<​note1><​note2>''​ - for more information see [[#​transposition operators]];​
   * ''​instrument=<​note1>;​abc@<​note2>''​ is a synonym for ''​score=<​note1><​note2>​ sound=c<​note2>''​ - for more information see [[#writing abc code for transposing instruments]];​   * ''​instrument=<​note1>;​abc@<​note2>''​ is a synonym for ''​score=<​note1><​note2>​ sound=c<​note2>''​ - for more information see [[#writing abc code for transposing instruments]];​
-  * ''​concert-clef=<​clef name>''​ specifies the clef to be used for a [[#​Generating a concert pitch score|concert pitch score]]+  * ''​clef-concert=<clef name>''​ specifies the clef to be used for a [[#​Generating a concert pitch score|concert pitch score]]
 // ... unchanged ... // // ... unchanged ... //
  
Line 65: Line 65:
 For example, ''​V:​1 shift=CG score=GF''​ expands to ''​V:​1 score=CG sound=CG score=GF''​ and so the second ''​score''​ overrides the first to result in ''​V:​1 sound=CG score=GF''​ (although it is recommended not to mix shorthands with direct operators - see [[#​Transposition operators]]). For example, ''​V:​1 shift=CG score=GF''​ expands to ''​V:​1 score=CG sound=CG score=GF''​ and so the second ''​score''​ overrides the first to result in ''​V:​1 sound=CG score=GF''​ (although it is recommended not to mix shorthands with direct operators - see [[#​Transposition operators]]).
  
-Finally note that there are two ways to specify octave shifts and, for example, ''​octave=1''​ has the same effect as ''​shift=Cc''​. However these operators can be used independently ​and so neither overrides the other.+Finally note that there are two ways to specify octave shifts and, for example, ''​octave=1''​ has the same effect as ''​shift=Cc''​. However these operators can be used independentlyneither overrides the other and their effects add up.
  
 ===== 13 Transposition ===== ===== 13 Transposition =====
Line 106: Line 106:
  
 // Notes for developers: // // 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#​ 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).+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#​ 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) ​and a warning issued to the user.
  
 // 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.) // 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.)
Line 142: Line 142:
 // NB: // The ''<​note1>''​ and ''<​note2>''​ in the ''​instrument=<​note1>;​abc@<​note2>''​ syntax are notes and **not** keys (so that different octaves may be specified and so that the letter ''​b''​ is not ambiguous). Therefore, for a Bb instrument you must write ''​instrument=_B''​ and not ''​instrument=Bb''​. // NB: // The ''<​note1>''​ and ''<​note2>''​ in the ''​instrument=<​note1>;​abc@<​note2>''​ syntax are notes and **not** keys (so that different octaves may be specified and so that the letter ''​b''​ is not ambiguous). Therefore, for a Bb instrument you must write ''​instrument=_B''​ and not ''​instrument=Bb''​.
  
-In all cases the typeset score is rendered at //written pitch// ​by default.+In all cases the typeset score is rendered at //written pitch// ​(unless a [[#​Generating a concert pitch score|concert score]] is requested).
  
 The [[#​Transposing instruments - extended example|extended example below (section 13.3.2)]] illustrates the principles of writing abc code for transposing instruments. The [[#​Transposing instruments - extended example|extended example below (section 13.3.2)]] illustrates the principles of writing abc code for transposing instruments.
Line 159: Line 159:
 To evaluate this formally, resolve all of the ''​instrument=''​ and ''​shift=''​ shorthands to their ''​score=''​ and ''​sound=''​ equivalents and then apply the ''​sound''​ transposition interval to the ''​score''​ modifier, so that ''​score=<​note1><​note2>​ sound=<​note3><​note4>''​ would effectively be changed by ''​I:​sounding-score''​ to ''​score=<​note3><​note4>​ sound=<​note3><​note4>''​. The same changes apply for ''​I:​concert-score''​ unless both ''<​note1>''​ and ''<​note3>''​ are a C (in any octave) in which case ''​score=''​ is left unchanged. These changes should be made **before** any overall transposition set by ''​I:​score'',​ ''​I:​sound''​ and ''​I:​shift''​ is applied. To evaluate this formally, resolve all of the ''​instrument=''​ and ''​shift=''​ shorthands to their ''​score=''​ and ''​sound=''​ equivalents and then apply the ''​sound''​ transposition interval to the ''​score''​ modifier, so that ''​score=<​note1><​note2>​ sound=<​note3><​note4>''​ would effectively be changed by ''​I:​sounding-score''​ to ''​score=<​note3><​note4>​ sound=<​note3><​note4>''​. The same changes apply for ''​I:​concert-score''​ unless both ''<​note1>''​ and ''<​note3>''​ are a C (in any octave) in which case ''​score=''​ is left unchanged. These changes should be made **before** any overall transposition set by ''​I:​score'',​ ''​I:​sound''​ and ''​I:​shift''​ is applied.
  
-Generally the clef on the concert/​sounding score will be the same as on the written score, but to change it, use ''​concert-clef=<​clef-name>''​.+Generally the clef on the concert/​sounding score will be the same as on the written score, but to change it, use ''​clef-concert=<​clef-name>''​.
  
 === 13.3.2 Transposing instruments - extended example === === 13.3.2 Transposing instruments - extended example ===
Line 266: Line 266:
 // TODO (elsewhere):​ Include a mechanism for setting the frequency of concert A. // // TODO (elsewhere):​ Include a mechanism for setting the frequency of concert A. //
  
-However, this will not work for ensembles with other instruments and so the simplest way is to treat the pipes as a transposing instrument and to write ''​K:​AMix sound=A_B''​ for written pitch scores ​(or ''​K:​BbMix score=_BA''​ for concert pitch scores).+However, this will not work for ensembles with other instruments and so the simplest way is to treat the pipes as a transposing instrument and to write ''​K:​AMix sound=A_B''​ for written pitch transcriptions ​(or ''​K:​BbMix score=_BA''​ for concert pitch transcriptions).
  
 This could instead be written ''​instrument=_d;​abc@_d''​ (or ''​instrument=_d;​abc@c''​ respectively) but most Highland pipers would be very surprised to hear their pipes referred to as a Db transposing instrument. This could instead be written ''​instrument=_d;​abc@_d''​ (or ''​instrument=_d;​abc@c''​ respectively) but most Highland pipers would be very surprised to hear their pipes referred to as a Db transposing instrument.
abc/standard/v2.1/proposals/transposition/v15.txt ยท Last modified: 2015/02/11 17:07 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