I'm going to take the liberty of reposting my suggestion for chord syntax,
since it seems to have got rather lost amid discussions on MUSE's, abc2midi;s
and the draft standard.

Hey, Rocky - watch me pull a formal grammer out of this hat!

Note
* = zero or more of...
[] = optional
'' = literal string
.. = range of numbers

<abcchord> :== '"'<symbol>'"'
<symbol> :== <chord>|<bassnote>
<bassnote> :== <singlenoteletter>[<accidental>]
<singlenoteletter> :== 'a'|'b'|'c'|'d'|'e'|'f'|'g'
<accidental> :== '#'|'b'

<chord> :== <note><type>[<modifierlist>]['/'<note>]

<note> :== <noteletter>[<accidental>]
<noteletter> :== 'A'|'B'|'C'|'D'|'E'|'F'|'G'

<type> :== <nothing>|'m'|'dim'|'aug'
<nothing> :== ''

<modifierlist> :== <complexmod>*
<complexmod> :== <modifier>|(<modifier>)
<modifier> :== <suspension>|<omission>|<addition>|<extension> 

<suspension> :== 'sus2'|'sus4'

<omission> := '5'|'no'<degree>
<degree> :== '2'..'13'

<addition> :== 'add'<altereddegree>
<altereddegree :== [<accidental>]<degree>

<extension> :== '6'|<complexext>
<complexext> :== <alteredext1>|<alteredext2>
<alteredext1> :== ['maj']<ext7th>[<alterationlist>]
<alteredext1> :== ['maj']<accidental><ext7th>
<ext7th> :== '7'|'9'|'11'|'13'
<alterationlist> :== <alteration>*
<alteration> :== <accidental><degree>

NB

noX             remove degree X from the chord (e.g, C7(no3)
5               same as 'no3'
6               add 6th
[maj]7          add b7th (7th if 'maj') 
[maj]9          add b7th (7th if 'maj') + 9th
[maj]11         add b7th (7th if 'maj') + 9th + 11th
[maj]13         add b7th (7th if 'maj') + 9th + 11th + 13th
[add]X          add the Xth note of the scale 
sus2            drop the 3rd to the second
sus4            raise the 3rd to the fourth
<accidental>X   apply the accidental to the X degree 
-- 
Mike Whitaker     | Work: +44 1733 766619 | Work: [EMAIL PROTECTED]
System Architext  | Fax:  +44 1733 348287 | Home: [EMAIL PROTECTED]
CricInfo Ltd      | GSM:  +44 7971 977375 | Web: http://www.cricinfo.com/
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html

Reply via email to