ABC notation is a shorthand form of musical notation for computers. In basic form it uses the letter notation with –, –, and , to represent the corresponding notes and rests, with other elements used to place added value on these – sharp, flat, raised or lowered octave, the note length, key, and ornamentation. This form of notation began from a combination of Helmholtz pitch notation and using ASCII characters to imitate standard musical notation (bar lines, tempo marks, etc.) that could facilitate the sharing of music online, and also added a new and simple language for software developers, not unlike other notations designed for ease, such as tablature and solfège.

The earlier ABC notation was built on, standardized, and changed by Chris Walshaw to better fit the keyboard and an ASCII character set, with the help and input of others. Originally designed to encode folk and traditional Western European tunes (e.g., from England, Ireland, and Scotland) which are typically single-voice melodies that can be written in standard notation on a single staff line, the extensions by 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.

ABC notation being ASCII-based, any text editor can be used to create and edit the encoding. 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 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.

Later third-party software packages have provided direct output, bypassing the TeX typesetter, and have extended the syntax to support lyrics aligned with notes, multi-voice and multi-staff notation, tablature, and MIDI.

History 
ABC notation was in widespread use in the teaching of Irish traditional music in the late 1970s and most probably much earlier than that. 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. For more details see Chris Walshaw's short history of ABC and John Chambers's chronology of ABC notation and software.

Standardization 
The most recent standard for ABC was released 21 December 2011. 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  program. In 1997, Henrik Norbeck published a Backus–Naur form (BNF).

In 1997, Steve Allen registered the text/vnd.abc MIME media type with the Internet Assigned Numbers Authority (IANA), but registration as a top level MIME type would require a formal Request for Comments (RFC). In 2006 Phil Taylor reported that quite a few websites still serve ABC files as text/plain.

In 1999, Chris Walshaw started work on a new version of the ABC specification to standardize the extensions that had been developed in various third-party tools. After much discussion on the ABC users mailing list, a draft standard (nominal version 1.7.6) was eventually produced in August 2000, but was never officially released. Thereafter, Chris stepped away for several years from actively developing ABC.

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.

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 2011. Chris Walshaw has become 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 |]
</score>

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 is 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  (using LilyPond's abc2ly) code for the MediaWiki software renders this as:

While abcm2ps software produces output that looks like:

More examples can be found on Chris Walshaw's ABC examples page, extensively displaying most ABC basic features, except rests, which would be denoted with 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 wikis
 AbcMusic for displaying ABC notation in PmWiki
  collaborative source for traditional music using a tailored version of the AbcMusic plugin
 The gabc notation, developed by the Gregorio Project for transcriptions of Gregorian chant scores
 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 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 is an Android application combining abcm2ps, abc2midi, and a bit of abc4j into a tool for composing.
 The multiplayer game The 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.
 The PC game Starbound allows players to use in-game instruments to play custom music.

See also
 GUIDO music notation
 Helmholtz pitch notation
 LilyPond
 Numbered musical notation, widely used in China
 Tonic sol-fa

References

Music notation file formats
ABC 기보법은 기보법의 축약된 형태이다.

ABC 표기법(ABC notation,ABC 기보법)은 음악 표기법의 일종으로 중요해진 형식이다. 기본형에서는 A부터 G까지의 문자를 사용하여 주어진 음을 나타낸다. 다른 요소는 음영, 길이, 장식의 길이와 같이 다양한 옵션이 추가됐다. 이후에 컴퓨터가 주요 의사 소통 수단으로 등장하면서 사용자들은 온라인 음악 공유를 용이하게하고 소프트웨어 개발자를위한 새로운 언어를 추가하는 ASCII 코드로 이 형식의 표기법을 사용할 수 있는 가능성을 보았다. 이 경우 ASCII 문자 세트를 미리 정의된 용도로 사용한다.
ABC 표기법은 ASCII 기반이며 모든 텍스트 편집기를 사용하여 음악을 편집할 수 있다.
이러한 소프트웨어는 마이크로소프트 윈도우, 유닉스 / 리눅스, 매킨토시, Palm OS 및 웹 기반을 포함하여 널리 사용 가능하게 되었다.

최신 써드 파티(third-party) 소프트웨어 패키지는 TeX 타입 세터를 우회하여 직접 출력을 제공하고, 다중 음성 및 다중 스태프 표기법,  태블러쳐 ,및 MIDI와 일치하는 가사를 지원하는 구문을 확장했다.

표준화
초기의 ABC 표기법은 크리스 월쇼(Chris Walshaw)가 설정한 ASCII 문자 세트이며 여러 사람들의 기여와 의견이 함께 반영되어 표준화되고 여러 요구사항을 위해 변경되었다. 이러한 다양한 반영으로 다시 작성되었지만, 이후에도 여전히 초기의 ABC 표기형태와 호환 및 공유가 가능하며 편집이 간단하고 쉽게 접근할 수 있는 형식을 유지하는 음악 표기법이 되었다.  원래 영어와 아일랜드어, 스코틀랜드와 같은 민속 음악 및 전통 음악과 함께 태블러처 및 솔페지오로도 사용할 수 있도록 설계되었으며, 일반적으로  크리스 월쇼(Chris Walshaw)의 작업 이외에도  다른 사람들의 작업이 시작되어 현저히 발전하였다. 추가된 최신 문자 및 헤더 목록은 각 곡의 메타 데이터도 지원할 수 있게되었다.

이러한 ABC표기법의 표준화는 단순히 음악을 작곡하는 방법의 제공뿐만아니라 이러한 작곡된 음악 데이터는 다른 환경에서 들려줄 수 있게 서로 공유가 가능하고 호환성을 유지해주는 광범위한 협업이 가능하다는 점에서 중요한 의미가 있다.

프로그램간 협업이 가능한 ABC표기법
최근 ABC표기법은 협업 환경에서 음악을 작곡하고 편집하며 보여주고 들려주는 방법으로까지 구현되어있다. ABC표기법을 사용할 수 있도록 협업화된 Wiki 환경은 다음과 같다.

-협업 및 대규모 악보 편집을 위한 ABC 기반 플랫폼-
 MediaWiki 용 악보 플러그인 : 이것은 기본 렌더링 엔진으로 GNU LilyPond(릴리폰드)를 사용한다. 릴리폰드(LilyPond)에는 ABC 표기법을 릴리폰드로 변환하는 스크립트인 abc2ly가 함께 제공된다. 확장 프로그램은 abc2ly와 LilyPond를 호출한다.
 MusicWiki :  MoinMoin 위키 용 파이썬 플러그인
 PmWiki에 ABC 표기법을 표시하기위한 AbcMusic
몬트리올 세션 튠북(Montreal Session Tunebook) :  AbcMusic 플러그인의 맞춤형 버전을 사용하여 전통 음악을 위한 협업 소스
 그레고리오 프로젝트 (Gregorio Project)에서 그레고리오 성가(Gregorian chant) 악보를 기록하기 위해 개발한 gabc 표기법
 DokuWiki에서 ABC 표기법을 표시하기위한 ABC 플러그인. 이 플러그인은 제프 모인(Jef Moine)의 abcm2ps 패키지를 렌더링 엔진으로 사용한다. ABC Plus Project를 사용하여 MIDI 오디오 출력을 생성한다.
EasyABC는 MIDI 내보내기 및 SVG 렌더링을 지원하는 ABC 편집기이다.
웹 페이지에 ABC 표기법을 표시하기위한 abc.js 플러그인:  서버에서 클라이언트 측을 지원한다.

Zap's ABC는 abcm2ps, abc2midi 및 abc4j의 비트를 손에넣는 도구를 결합한 Android 앱
멀티 플레이어 게임 The Lord of the Rings Online은 이제 ABC 표기법을 사용하여 플레이어가 게임 내 모든 MIDI 음악 파일을 변환하고 재생할 수 있게한다. 플레이어는 캐릭터가 해당 악기를 연주하도록하여 음악을 재생한다.
PC 게임 스타바운드(Starbound)를 통해 플레이어는 자신의 악기를 사용하여 사용자 지정 음악을 재생할 수 있다.
 musicXML에 특화되어 제작된 전용 자바스크립트파일은  JQuery와 함께 스탠드얼론상태인  PC환경에서도 ABC표기법에 기반해서 웹 브라우저 상에서 편집과 재생이 가능토록한다.

예제

<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 |]
</score>

같이 보기 
 musicXML

각주

외부 링크 
ABC notation 참고 사이트
ABC notation 활용 샘플 사이트

파일 포맷
기보법