Jump to content

ABC notation

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 194.126.117.83 (talk) at 09:10, 23 April 2016 (Collaborative abc). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

ABC notation is a shorthand form of musical notation. In basic form it uses the letters A through G to represent the given notes, with other elements used to place added value on these - sharp, flat, the length of the note, key, ornamentation. Later, with computers becoming a major means of communication, others saw the possibilities of using this form of notation as an ASCII code that could facilitate the sharing of music online, also adding a new and simple language for software developers. In this later form it remains a language for notating music using the ASCII character set. The earlier ABC notation was built on, standardized and changed to better fit the keyboard and an ASCII character set by Chris Walshaw, with the help and input of others. Although now re-packaged in this form, the original ease of writing and reading, for memory jogs and for sharing tunes with others on a scrap of paper or a beer coaster remains, a simple and accessible form of music notation, not unlike others, such as tablature and Solfeggio. Originally designed for use with folk and traditional tunes of Western European origin (e.g. English, Irish, Scottish) which are typically single-voice melodies which can be written on a single staff in standard notation, the work of Chris Walshaw and others has opened this up with an increased list of characters and headers in a syntax that can also support metadata for each tune.[1]

ABC Notation being ASCII-based, any text editor can be used to edit the music. Even so, there are now many ABC Notation software packages available that offer a wide variety of features, including the ability to read and process abc notation, including into midi files and as standard 'dotted' notation. Such software is readily available for most computer systems including Microsoft Windows, Unix/Linux, Macintosh, Palm OS, and web-based.[2]

Later 3rd-party software packages have provided direct output (bypassing the TeX typesetter),[3] and have extended the syntax to support lyrics aligned with notes,[4] multi-voice and multi-staff notation,[5] tablature,[6] and MIDI.[7]

History of ASCII ABC Notation

In the 1980s Chris Walshaw began writing out fragments of folk/traditional tunes using letters to represent the notes before he learned standard Western music notation. Later he began using MusicTeX to notate French bagpipe music. To reduce the tedium of writing the MusicTeX code, he wrote a front-end for generating the TeX commands, which by 1993 evolved into the abc2mtex program.[8] For more details see Chris' short history of abc, and John Chambers' chronology of ABC notation and software.

Standardization

The most recent standard for ABC was released 21 December 2011.[9] It is a textual description of abc syntax, cleaning up many of the ambiguities of the 2.0 Draft Standard (which in turn was grown from the 1996 user guide of version 1.6 of Chris Walshaw's original abc2mtex program. In 1997, Henrik Norbeck published a BNF description of the abc v1.6 standard.[10])

In 1997, Steve Allen registered the text/vnd.abc MIME media type with the IANA.[11] But registration as a top level MIME type would require a full-blown RFC.[12] In 2006 Phil Taylor reported that quite a few websites still serve abc files as text/plain.[13]

In 1999, Chris Walshaw started work on a new version of the abc specification to standardize the extensions that had been developed in various 3rd-party tools. After much discussion on the ABC users mailing list, a draft standard - version 1.7.6 - was eventually produced in August 2000, but was never officially released.[14] At that point Chris stepped away for several years from actively developing abc.[15]

Guido Gonzato later compiled a new version of the specification and published a draft of version 2.0. This specification is now maintained by Irwin Oppenheim. Henrik Norbeck has also published a corresponding BNF specification.[16]

After a surge of renewed interest in clarifying some ambiguities in the 2.0 draft and suggestions for new features, serious discussion of a new (and official) standard resumed in 2011, culminating in the release of ABC 2.1 as a new standard in late December. Chris Walshaw has gotten involved again and is coordinating the effort to further improve and clarify the language, with plans for topics to be addressed in future versions to be known as ABC 2.2 and ABC 2.3.

Example

The following is an example of the use of ABC notation in MediaWiki.

<score lang=ABC">
 X:1
 T:The Legacy Jig
 M:6/8
 L:1/8
 R:jig
 K:G
 GFG BAB | gfg gab | GFG BAB | d2A AFD |
 GFG BAB | gfg gab | age edB |1 dBA AFD :|2 dBA ABd |:
 efe edB | dBA ABd | efe edB | gdB ABd |
 efe edB | d2d def | gfe edB |1 dBA ABd :|2 dBA AFD |]

Lines in the first part of the tune notation, beginning with a letter followed by a colon, indicate various aspects of the tune such as the index, when there are more than one tune in a file (X:), the title (T:), the time signature (M:), the default note length (L:), the type of tune (R:) and the key (K:). Lines following the key designation represent the tune. This example can be translated into traditional music notation using one of the abc conversion tools. For example, the Score extension code for the MediaWiki software renders this as:


X:1
T:The Legacy Jig
M:6/8
L:1/8
R:jig
K:G
GFG BAB | gfg gab | GFG BAB | d2A AFD |
GFG BAB | gfg gab | age edB |1 dBA AFD :|2 dBA ABd |:
efe edB | dBA ABd | efe edB | gdB ABd |
efe edB | d2d def | gfe edB |1 dBA ABd :|2 dBA AFD |]

While abcm2ps software produces output that looks like:

More examples can be found on Chris Walshaw's abc examples page which displays almost extensively abc basic features, except rest that are noted "z".

Collaborative abc

Recently abc has been implemented as a means of composing and editing music in collaborative environments. Some Wiki environments that have been adapted to use abc are:

  • The Wiki-score platform for collaborative, large-scale score editing uses ABC as base notation.
  • The Score plugin for MediaWiki. This uses GNU LilyPond as the underlying rendering engine. LilyPond comes packaged with a script, abc2ly, that converts ABC notation to LilyPond. The extension calls abc2ly then LilyPond.
  • MusicWiki, a Python plugin implementation for MoinMoin
  • AbcMusic for displaying abc notation in PmWiki
  • Montreal Session Tune Book A collaborative source for traditional music using a tailored version of the AbcMusic plugin
  • The gabc notation, developed for transcriptions of gregorian chant scores, by the fr [Gregorio Project].
  • abc plugin for displaying abc notation in DokuWiki. This plugin uses Jef Moine's abcm2ps package as the rendering engine. It optionally uses abc2midi (available from the ABC Plus Project) to produce midi audio output.
  • EasyABC is an easy ABC-editor that supports MIDI export and SVG rendering.
  • abcjs plugin for displaying abc notation on any web page. This allows abc to be stored as text on the server and rendered client-side.
  • Zap's abc an Android application combining abcm2ps, abc2midi and a bit of abc4j into a tool for composing in your pocket. Online help
  • The multiplayer game Lord of the Rings Online now uses the abc notation to allow players to convert and play any midi music file in game. The players play the music by having their character play the corresponding instrument in the game itself.
  • The PC game Starbound allows players to use ingame instruments to play custom music.

See also

References

  1. ^ Walshaw, Chris. "abc music notation :: introduction". abcnotation.com. Retrieved March 1, 2008.
  2. ^ Walshaw, Chris. "abc music notation :: history". abcnotation.org.uk. Retrieved March 1, 2008.
  3. ^ Vint, Jim. "ABC2Win Shareware Music Notation Program". abc2win.com. Archived from the original on 4 March 2008. Retrieved March 1, 2008. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  4. ^ Methfessel, Michael. "abc2ps". Archived from the original on February 12, 2008. Retrieved March 1, 2008.
  5. ^ Moine, Jean-François. "abcm2ps". Retrieved March 1, 2008.
  6. ^ Dalitz, Christoph. "abctab2ps". Archived from the original on 6 February 2008. Retrieved March 1, 2008. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  7. ^ Allwright, James. "abcMIDI". Archived from the original on 9 March 2008. Retrieved March 1, 2008. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  8. ^ Walshaw, Chris. "abc music notation :: software". abcnotation.org.uk. Retrieved March 1, 2008.
  9. ^ "The abc music standard 2.1 (Dec 2011)" Last accessed 21 Dec 2011.
  10. ^ Norbeck, Henrik. "ABC 1.6 in BNF Format". Archived from the original on 9 March 2008. Retrieved March 1, 2008. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  11. ^ "Registration of MIME media type text/vnd.abc". Retrieved March 1, 2008.
  12. ^ Allen, Steve. "ABC as a MIME type". Retrieved March 1, 2008.
  13. ^ Taylor, Phil. "abcusers: Re: ABC on the web". Retrieved March 1, 2008.
  14. ^ Walshaw, Chris. "abc music notation :: learning". abcnotation.org.uk. Retrieved March 1, 2008.
  15. ^ Walshaw, Chris. "abc music notation :: further information". abcnotation.org.uk. Retrieved March 1, 2008.
  16. ^ Oppenheim, Irwin. "The ABC Music Standard". Archived from the original on 21 February 2008. Retrieved March 1, 2008. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)