Question A. Combining / overriding / extended syntax

A number of options for allowing re-transposition have been discussed, mostly relating to how the modifiers in a K: or V: field interact with each other (either combining or overriding).

There are five choices.

The following (nonsensical) example is used in each choice to illustrate what effect the interaction has:

K:C instrument=_E;abc@written shift=CG clef=treble clef=alto octave=1 octave=1

which, when you replace the instrument and shift shorthands, resolves to

K:C shift-score=cc shift-sound=c_E shift-score=CG shift-sound=CG clef=treble clef=alto octave=1 octave=1
  1. All modifiers in a K: or V: field combine.

    This means that modifiers such as instrument= and shift= may be combined (by resolving to their shift-score= & shift-sound= equivalents). Although nonsensical, repeated combinable modifiers (e.g. stafflines= and octave=) are legal and add their effects.

    This rule does not apply to non-combinable modifiers such as clef and accidentals (K: field only) and in these cases the last one overrides any previous modifier of the same type (software may issue a non-fatal error message).

    The example resolves to
    K:C shift-score=CG shift-sound=c_B clef=alto octave=2


  2. All modifiers in a K: or V: field combine but may not be repeated.

    This means that modifiers such as instrument= and shift= may be combined (by resolving to their shift-score= & shift-sound= equivalents).

    In the case of repeated modifiers, the last one overrides any previous modifier of the same type (software may issue a non-fatal error message). In this context instrument= and shift= are not regarded as repeats of shift-score= and shift-sound= even though they are defined in terms of them.

    The example resolves to
    K:C shift-score=CG shift-sound=c_B clef=alto octave=1


  3. All shift-score=, shift-sound=, shift= and instrument= modifiers in a K: or V: field combine.

    To combine them, resolve to their shift-score= & shift-sound= equivalents.

    In the case of any other repeated modifiers, the last one overrides any previous modifier of the same type (software may issue a non-fatal error message).

    The example resolves to
    K:C shift-score=CG shift-sound=c_B clef=alto octave=1


  4. All shift-score=, shift-sound=, shift= and instrument= modfiers in a K: or V: field combine but may not be repeated.

    To combine them, resolve to their shift-score= & shift-sound= equivalents.

    In the case of repeated modifiers, the last one overrides any previous modifier of the same type (software may issue a non-fatal error message). In this context instrument= and shift= are not regarded as repeats of shift-score= and shift-sound= even though they are defined in terms of them.

    The example resolves to
    K:C shift-score=CG shift-sound=c_B clef=alto octave=1


  5. All modifiers in a K: or V: field override. The instrument=<note>;abc@concert and instrument=<note>;abc@written modifier may optionally include an additional transposition.

    instrument=<note>;abc@concert;+<note1><note2> is "shorthand" for shift-score=<note1><note2>+<note>c shift-sound=<note1><note2>
    instrument=<note>;abc@written;+<note1><note2> is "shorthand" for shift-score=<note1><note2> shift-sound=<note1>note2>+c<note>

    Here the + adds the two transposition intervals together.

    In the case of repeated modifiers, the last one overrides any previous modifier of the same type (software may issue a non-fatal error message). In this context instrument= and shift= should be resolved to shift-score= and shift-sound= before overriding is evaluated.

    The example resolves to
    K:C shift-score=CG shift-sound=CG clef=treble octave=1


    To achieve the same as combining syntaxes, the example may be rewritten

    K:C instrument=_E;abc@written;+CG clef=treble clef=alto octave=1 octave=1

    which resolves to

    K:C shift-score=CG shift-sound=c_B clef=alto octave=1


Question B. Instrument modifier wording

A number of options have been proposed for the wording to represent "the abc is encoded at concert/written pitch for an instrument in <note>".

The following express those options for an instrument in low C:

  1. instrument=C;concert-abc
    instrument=C;written-abc
  2. instrument=C;abc=concert
    instrument=C;abc=written
  3. instrument=C;abc@concert
    instrument=C;abc@written
  4. instrument=C;concert
    instrument=C;written
  5. instrument=C;abc-as-sounded
    instrument=C;abc-as-written
  6. instrument=C/abc-sound
    instrument=C/abc-score
  7. instrument-concert=C
    instrument-written=C
  8. concert-abc:instrument=C
    written-abc:instrument=C
  9. shift=instrument-in:C/abc@sound
    shift=instrument-in:C/abc@score

In most cases these options could have a shorthand (e.g. in the case of 1, 2, and 3 it could be instrument=C;concert / instrument=C;written) but we will decide on that later.