home | tune search | software | learn abc | discuss | about | blog | Starbound/LOTRO | contact |
[abc standard: home | current | route-map | updating | proposals]
Voice parameters have the general syntax "keyword=value". They may occur interchangeably inside V: or K: fields, separated from the other syntax elements by space characters. The syntax [K:keyword=value] is also legal and often preferred, since there is no principal difference to stand-alone fields. (The only exception is "middle=", for legacy reasons.)
As the name says, any voice parameter is formally restricted to its voice. Its value ceases to apply at the next V: field, but resumes validity at the next V: of its own voice.
Voice parameters can be changed in the course of a voice, simply by issuing a directive of equal keyword, but different value, in a V: or K: field. The previous value is always overridden, never added to etc. Some keywords also override the values of different keywords, as mentioned in their definition. (Note that this concerns the formal language objects called voice parameters; their actual effect may well influence other voices, or add to an overall transposition intervall, etc.)
The order in which parameters occur within a single field is strictly irrelevant; any conflict among them must result in a severe error message.
A fundamental voice parameter keyword is stafflines=, whose value is the number of lines in the staff. Legal values are 0 to 9. The default is 5.
Staff lines are numbered from a (possibly "invisible") bottom line upwards. Depending on the stafflines value, the lines with the following numbering will be visible only:
stafflines= | visible lines |
---|---|
0 | none |
1 | 3 |
2 | 2 and 3 |
3 | 2, 3, and 4 |
4 and more | all, starting with 1. |
The reason for this is to cater for legacy usage, identifying the "middle" line with line number 3.
Clef information is provided by the voice parameter keywords "clef" and "middle". The syntax is:
[clef=]<clef name>[<line number>][+8 | -8 | +8i | -8i] [middle=<note>]
(where <…> denotes a value, […] denotes an optional parameter, and | separates alternative values).
*) Software unable to support some valid stafflines/clef/line-number/middle combination, should apply its best approximation that yields equal pitches, and issue a warning message.
clef | legal middle= values |
---|---|
treble[+/-8] | C E G B d |
treble+8i | c e g b d' |
treble-8i | C, E, G, B, D |
alto or tenor | F, A, C E G |
bass[+/-8] | B,, D, F, A, C |
bass+8i | B, D F A c |
bass-8i | B,,, D,, F,, A,, C, |
perc | an arbitrary note |
none | an arbitrary note |
auto | - forbidden - |
The keywords clef= and middle= always apply to the voice as normally printed. If the header field "I:concert_score" [NEW] is active, by default these clefs will be applied as well. Sometimes different clefs are required, particularly for instruments with large transposition intervals such as used for tenor saxophones, piccolo flutes, double basses etc. In these cases, use the keywords
clef_concert= and middle_concert=
with exactly the same possible values as clef/middle, except that the [+8 | -8] postfices are not allowed.
The mechanism is the following:
Of course, the concert score must represent the same sounding pitches as the transposed score. For example, a double bass, treated as a transposing instrument, usually needs "clef_concert=bass-8i", if a concert score is to be catered for.
"I:suppress-subsequent-clefs" causes clefs to be printed only at their installation, not at the beginning of every staff.
"I:suppress-subsequent-key-signatures" does the same with key signatures.
Both are staff-related types.
…[TODO, a topic of its own; includes "octave=". ]
My name is Alexander Scheutzow. Suggestions for improvements are welcome in the thread http://tech.groups.yahoo.com/group/abcusers/message/8246 - my user name there is scheutzow4cond. Thank you.
The same applies to my other fundamental proposal at abcnotation.com/wiki/abc:standard:v2.1:proposals:multi-voice_scope:v1
July 24, 2012: First version. In this appendix, I would like to collect my own comments, errata, answers to questions, and announcements for the next version. It will be the only part of the text that will be edited, if possible by appending only. Any comments by readers, or separate proposals, are welcome, but will be particularly valuable if they take account of the various problems I try to solve with my proposal. So please take your time to study it/them thoroughly. Thanks.
The list items are numbered for better reference, the final version may use bullets or other forms of organization.
The problem with stafflines=0 is how to establish "line numbers" for clef, middle, etc. abc2ps has a solution for the stafflines problem that I would not exactly call beautiful, but which works and is probably being used. The point is that the line numbering does not count the visible lines from 1, but includes "invisible lines".
This current version reflects the behaviour of abc2ps in the question of line numbering. If anyone knows conflicting software or usages, please shout.