Page 1 of 1

abc draft standard 2.1

Posted: Sat Apr 16, 2011 8:22 am
by cwalshaw
I've just published the draft standard 2.1 at

Changes are up for discussion, but partly this is minor update aiming to restore backwards compatibility - details in section 0.

It's also an opportunity for testing procedures for updating the standard. There was a brief discussion about that here but no resolution so for the moment I'm proposing that changes are discussed on this list and then - when a final version is agreed and the precise wording has been decided - I will incorporate them.

If possible I would like this be a fairly agile process with the draft adopted within say 3 months. Any changes that are not satisfactorily agreed will then be moved into the next draft.

Anyway, that's the plan ...


Re: abc draft standard 2.1

Posted: Sat Apr 16, 2011 7:28 pm
by AlexMidiCond

I have a couple of suggestions for the standard, maybe for a later 3.0. If this is not the right place for them, please move or quote them wherever adequate.

2. An ABC file is a text file. If it starts with a "BOM", it will be considered UTF as indicated. Otherwise, a single-byte codepage is assumed as indicated in %%abc-charset statements (including UTF-8 [without BOM] but excluding UTF-16 etc.), or iso-8859-1 as long as none is specified. To cope with ABC files mailed in packed formats, reader software should accept line feeds hex. 0D, 0A, and 0D0A, whereas writers should use the line feed of the system they are running on.

4.9. ... The Nth ending starts with [N and ends with one of ||, :|, |], [|, or another [M. To end the last ending without a double line or any other effect, [0 can be used.

4.15. ... Conversely, lyrics symbols can be positioned inline using the syntax "+There"C

4.17 All the notes within a chord should have the same length. If they don't, the longest one is used to determine the length value of the chord.

7.1. ... V:transpose=+2 can be used as an alternative to K:transpose=-2, to write and see the notes that actually sound (including all key signatures, chord symbols, and grace notes). The enharmonic interpretation shall follow the rules of classical music.

7.4. ... For the treatment of accidentals, cf. 11.3.

8.2. ... Characters may also be coded by typing \u followed by the decimal unicode of the character, followed by a semicolon. The meaning of these codes does not depend on the character set used, and is therefore highly recommended. \ux...; can be used for hexadecimal unicode, analogous to HTML's &#x.

11.1. ... (RH1 -RH2) means that RH2 shall appear with its rests invisible, in other words "x" instead of "z".

11.2. ... %%MIDI program 1 53, as used in example 13.4. below, is accepted as an alternative to %%MIDI voice 1 instrument=53

11.3. Accidental directives
%%propagate-accidentals not | bar
When set to not, accidentals apply only to the note they're attached to. When set to bar, accidentals also apply to all the notes of the same level (i.e. on the same note line or between the same note lines, or equivalent levels after a change of clefs) up to the end of the bar.
The default value is bar, following the traditional rules of notation.
Accidentals will never be considered propagated to other octaves. Voice overlay sections are treated individually, i.e. accidentals will not be propagated from one to the other. Of course, writers are encouraged to give those accidentals explicitely.

12. ... For a small number of features, contradictory standards have been established in large corpora of existing ABC files. To give hints to ambitous reader software, a line %%abc-version 3.0 should be attached to all tunes. Non-numeric version numbers such as m6.0 may be granted on demand, as a pragmatic makeshift.

13. (The examples should follow the rules)

Re: abc draft standard 2.1

Posted: Sun Jul 03, 2011 9:37 pm
by Esn
I would like default note lengths of greater than 1/4 to be allowed.

Let's say I want to write something with 1 whole note per bar. Why couldn't I set a default note length of "1"?

Re: abc draft standard 2.1

Posted: Wed Jul 27, 2011 7:34 am
by cwalshaw
I think that's always been possible, but the way the standard was written suggested that it isn't. Now modified - see ... ote_length