Abc (music notation): Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Pat Palmer
mNo edit summary
 
(33 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{subpages}}
{{subpages}}
'''abc,''' so capitalized by its inventor, Chris Walshaw,<ref>See Walshaw's brief introduction to abc at <http://www.walshaw.plus.com/abc/>; last accessed Aug. 21, 2008.</ref> is a special-purpose [[programming language]] for creating [[musical notation]], where melodies are represented in the [[ASCII character set]] by the letter which corresponds to each musical note.  Because of the correspondence of letters and notes, abc notation tends to be learnable by musicians who are not necessarily computer programmers.  Since the introduction of the first freeware compiler in 1993, the abc language has achieved widespread use for folk and [[traditional music|traditional tunes]] which are typically single-voice melodies on a single staff.  With multiple freeware compilers now available, the abc language continues to grow in popularity because it provides a cost-free alternative for creating musical scores, and because it provides a standard way for people to share tunes and scores on the [[world wide web]].  Although not held by any tranditional standards body, abc can be considered to be a ''de facto'' standard due to widespread, voluntary compliance by software authors to certain written specifications.
{{dambigbox|abc (music notation)|abc}}
{{lowercase}}
{{Image|dickeys_discovery_5lineskink.gif|right|600px| A rendered tune and its abc notation (source code).}}
'''abc,''' so uncapitalized by its inventor, Chris Walshaw,<ref>See Walshaw's brief introduction to abc at <http://www.walshaw.plus.com/abc/>; last accessed Aug. 21, 2008.</ref> is a special-purpose [[programming language]] for creating [[musical notation]], where melodies are represented in the [[ASCII|ASCII character set]], straightforwardly by the letter which corresponds to each musical note.  Because of the correspondence of letters and notes, abc notation tends to be learnable by musicians who are not necessarily computer programmers.  Since the introduction of the first freeware ''abc notation'' [[Compiler|compiler]] in 1993, the abc language has achieved widespread use for folk and [[traditional music|traditional tunes]] which are typically single-voice melodies on a single staff.  With multiple freeware compilers now available, the abc language continues to grow in popularity because it provides a cost-free alternative for creating musical scores, and because it provides a standard way for people to share tunes and scores on the [[world wide web]].  Although not held by any tranditional standards body, abc has been considered to be a ''de facto'' standard due to widespread, voluntary compliance by software authors to certain written specifications. However, compliance has lessened over time.  To keep up with the latest versions, people may join the ''abcusers'' users group<ref>[https://groups.io/g/abcusers/ abcusers group] on [https://groups.io/ groups.io] (account required), last accessed 4/2/2022</ref>


Arguably, the abc notation has revolutionized the learning of [[folk music|traditional and folk music]], due to the proliferation of many thousands of tunes in this format throughout the Internet.  Especially in Irish and Scottish traditional music, it is now possible to find "the abc" for all but the most obscure traditional tunes.  This has also given people an easy and interesting way to discuss tunes online without the technical inconvenience of a recording of the tune.  As a result, tune scholarship has arguably improved by the addition of such resources as [[The Fiddler's Companion]] by Andrew Kuntz;<ref>The Fiddler's Companion is free and may be accessed at <http://www.ibiblio.org/fiddlers/index.html>; last accessed August 21, 2008.</ref> without the aggregating possibilities of the Internet, such resources would be difficult if not impossible to compile, and would in any case take much longer to compile.
To give a sense of how easy it is for people to notate music using abc, here is the ABC notation for two octaves of notes from low G below middle C upwards:
 
    G A B C D E F G A B c d e f g a b c' d' e' f' g' a'
 
==User group==
A user group for users and developers of abc notation tools remains active on ''Groups.io'', administered by Michael Pavan, as of 2023.<ref name=usergroup>[https://groups.io/g/abcusers/ ABCusers] on ''Groups.io''</ref>
 
==Impact==
Arguably, abc notation has revolutionized the learning of [[folk music|traditional and folk music]], due to the proliferation of many thousands of tunes in this format throughout the Internet.  Especially in Irish and Scottish traditional music, it is now possible to find "the abc" for all but the most obscure traditional tunes.  This has also given people an easy and interesting way to discuss tunes online without the technical inconvenience of a recording of the tune.  As a result, tune scholarship has arguably improved by the addition of such resources as [[The Fiddler's Companion]] by Andrew Kuntz;<ref>The Fiddler's Companion is free and may be accessed at <http://www.ibiblio.org/fiddlers/index.html>; last accessed August 21, 2008.</ref> without the aggregating possibilities of the Internet, such resources would be difficult if not impossible to compile, and would in any case take much longer to compile.


==Example==
==Example==
Line 9: Line 20:
  X:1
  X:1
  T:Dickey's Discovery
  T:Dickey's Discovery
  C:Unknown, transmitted thru Lotus Dickey to Pete Sutherland
  C:Unknown, transmitted through Lotus Dickey to Pete Sutherland
  M:4/4
  M:4/4
  Q:1/2=120
  Q:1/2=120
Line 23: Line 34:


and here is how the above code is rendered as a .pdf document:
and here is how the above code is rendered as a .pdf document:
[[Image:dickeys_discovery.gif|thumb|750px|left| .pdf rendering of D reel ''Dickey's Discovery'']]
{{Image|dickeys_discovery.gif|right|750px| .pdf rendering of D reel ''Dickey's Discovery''}}


==Software==
==Software==
Line 31: Line 42:


====Five Line Skink====
====Five Line Skink====
[[Image:dickeys_discovery_5lineskink.gif|thumb|450px|right| D reel ''Dickey's Discovery'' opened in the Five Line Skink editor on Windows]]
{{Image|dickeys_discovery_5lineskink.gif|right|275px| D reel ''Dickey's Discovery'' opened in the Five Line Skink editor on Windows}}
Five Line Skink<ref>{{cite web|url=http://celticmusic.ca/skink.html|title=Skink|author=Wil Macaulay, May 2004|publisher=Wil Macaulay, May 2004}}</ref> is a freeware abc editor for Windows.  It is almost [[WYSIWYG]], requiring a single mouse click after updates to refresh the display of the tune.  Skink's rendering is not as fine as ps2pdf, but is fine for most purposes.   
Five Line Skink<ref>{{cite web|url=http://celticmusic.ca/skink.html|title=Skink|author=Wil Macaulay, May 2004|publisher=Wil Macaulay, May 2004}}</ref> is a freeware abc editor for Windows.  It is almost [[WYSIWYG]], requiring a single mouse click after updates to refresh the display of the tune.  Skink's rendering is not as fine as [[ps2pdf]], but is fine for most purposes.   


Before installing Skink, you need first to install the Java Runtime Environment (JRE)<ref>{{cite web|url=http://java.sun.com/javase/downloads/index.jsp|title=Java SE Downloads|author=Sun Microsystems|publisher=Sun Microsystems}}</ref>.
Before installing Skink, you need first to install the Java Runtime Environment (JRE)<ref>{{cite web|url=http://java.sun.com/javase/downloads/index.jsp|title=Java SE Downloads|author=Sun Microsystems|publisher=Sun Microsystems}}</ref>.
Line 39: Line 50:


====Barfly====
====Barfly====
====Five Line Skink====


===Linux===
===Linux===
==Related utilities==
This section describes how to use several free utilities to automate creation of various file types from abc input text files.
===Creating .pdf files from .abc files===
====abc2ps====
Abc2ps is a free utility, created by [http://www.ihp-ffo.de/~msm/ Michael Methfessel], that reads an input file containing abc code and outputs a [[postscript]] (.ps) file. The output file can then displayed (i.e. using [[ghostview]]), printed on a [[Postscript printer]], or converted with another utility (see below) to .pdf or other formats. The program is written in [[C]] and runs on most systems which have a C compiler.  An [[MS-DOS command]] line would look like this:
  abcm2ps -O C:\tunes\ps\mysong.ps C:\tunes\abc\mysong.txt
The above command line reads input file ''mysong.txt'' and creates output file ''mysong.ps'' in the subfolders shown.
====ps2pdf====
''ps2pdf'' is a free utility that can create a very good-quality .pdf document from a postscript (.ps) file input.
  ps2pdf C:\tunes\ps\mysong.ps C:\tunes\pdf\mysong.pdf
The above command line reads input file mysong.ps and creates output file mysong.pdf in the subfolders shown.
===Creating .midi file from .abc files===
  abc2midi C:\tunes\mysong.txt -o C:\tunes\mysong.midi
The above command line reads input file mysong.txt (which must contain abc notation) and creates output file mysong.midi in the subfolders shown.  The .midi file can then be played using Windows Media Player or an equivalent music player.  The input file must contain header lines to describe the meter, note length, and timing; for example:
M:4/4
Q:1/2=120
L:1/8
The above abc header lines specify the timing for a reel (4/4 time, with eighth notes as the basic unit, and timing of 120 half notes per minute).  If chords are included in the .abc notation, the .midi output file will sound event better (the beat will be highlighted in the notated chords).


==References==
==References==
{{reflist|2}}
{{reflist|2}}[[Category:Suggestion Bot Tag]]

Latest revision as of 13:53, 5 July 2024

This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.
This article is about abc (music notation). For other uses of the term abc, please see abc (disambiguation).


(CC) Image: Pat Palmer
A rendered tune and its abc notation (source code).

abc, so uncapitalized by its inventor, Chris Walshaw,[1] is a special-purpose programming language for creating musical notation, where melodies are represented in the ASCII character set, straightforwardly by the letter which corresponds to each musical note. Because of the correspondence of letters and notes, abc notation tends to be learnable by musicians who are not necessarily computer programmers. Since the introduction of the first freeware abc notation compiler in 1993, the abc language has achieved widespread use for folk and traditional tunes which are typically single-voice melodies on a single staff. With multiple freeware compilers now available, the abc language continues to grow in popularity because it provides a cost-free alternative for creating musical scores, and because it provides a standard way for people to share tunes and scores on the world wide web. Although not held by any tranditional standards body, abc has been considered to be a de facto standard due to widespread, voluntary compliance by software authors to certain written specifications. However, compliance has lessened over time. To keep up with the latest versions, people may join the abcusers users group[2]

To give a sense of how easy it is for people to notate music using abc, here is the ABC notation for two octaves of notes from low G below middle C upwards:

   G A B C D E F G A B c d e f g a b c' d' e' f' g' a'

User group

A user group for users and developers of abc notation tools remains active on Groups.io, administered by Michael Pavan, as of 2023.[3]

Impact

Arguably, abc notation has revolutionized the learning of traditional and folk music, due to the proliferation of many thousands of tunes in this format throughout the Internet. Especially in Irish and Scottish traditional music, it is now possible to find "the abc" for all but the most obscure traditional tunes. This has also given people an easy and interesting way to discuss tunes online without the technical inconvenience of a recording of the tune. As a result, tune scholarship has arguably improved by the addition of such resources as The Fiddler's Companion by Andrew Kuntz;[4] without the aggregating possibilities of the Internet, such resources would be difficult if not impossible to compile, and would in any case take much longer to compile.

Example

Here is the source code for a reel called Dickey's Discovery:

X:1
T:Dickey's Discovery
C:Unknown, transmitted through Lotus Dickey to Pete Sutherland
M:4/4
Q:1/2=120
L:1/8
R:reel
N:taught to Pat Palmer by Garry Moore, July 2007; played at R&O XXVIII
K:D
dB|:"D"A2FG    FEDE |    FA2B    A2dB | "D"A2FG    FEDF  |  "A"EDEF  E2 dB|
    "D"A2FG    FEDE |    F2A2    f2fe | "G"d2Bc "A"BAFG  |1 "D"A2 D2 D2 dB:|2"D"A2 D2 D2 (3ABc|
  |:"D"d2d2 "A"egfe | "G"dedB "A"ABcA | "D"dcde "Bm"fefg |  "A"a2e2  egfe |
    "D"d2d2 "A"egfe | "D"fgaf "A"egfe | "G"d2Bc "A"BAFG  |1 "D"A2 D2 D2 (3ABc:|2"D"A2 D2 D2 dB|]
w: v4

and here is how the above code is rendered as a .pdf document:

(CC) Image: Pat Palmer
.pdf rendering of D reel Dickey's Discovery

Software

Windows

Five Line Skink

(CC) Image: Pat Palmer
D reel Dickey's Discovery opened in the Five Line Skink editor on Windows

Five Line Skink[5] is a freeware abc editor for Windows. It is almost WYSIWYG, requiring a single mouse click after updates to refresh the display of the tune. Skink's rendering is not as fine as ps2pdf, but is fine for most purposes.

Before installing Skink, you need first to install the Java Runtime Environment (JRE)[6].

Mac OS X

Barfly

Five Line Skink

Linux

Related utilities

This section describes how to use several free utilities to automate creation of various file types from abc input text files.

Creating .pdf files from .abc files

abc2ps

Abc2ps is a free utility, created by Michael Methfessel, that reads an input file containing abc code and outputs a postscript (.ps) file. The output file can then displayed (i.e. using ghostview), printed on a Postscript printer, or converted with another utility (see below) to .pdf or other formats. The program is written in C and runs on most systems which have a C compiler. An MS-DOS command line would look like this:

 abcm2ps -O C:\tunes\ps\mysong.ps C:\tunes\abc\mysong.txt

The above command line reads input file mysong.txt and creates output file mysong.ps in the subfolders shown.

ps2pdf

ps2pdf is a free utility that can create a very good-quality .pdf document from a postscript (.ps) file input.

 ps2pdf C:\tunes\ps\mysong.ps C:\tunes\pdf\mysong.pdf

The above command line reads input file mysong.ps and creates output file mysong.pdf in the subfolders shown.

Creating .midi file from .abc files

 abc2midi C:\tunes\mysong.txt -o C:\tunes\mysong.midi

The above command line reads input file mysong.txt (which must contain abc notation) and creates output file mysong.midi in the subfolders shown. The .midi file can then be played using Windows Media Player or an equivalent music player. The input file must contain header lines to describe the meter, note length, and timing; for example:

M:4/4
Q:1/2=120
L:1/8

The above abc header lines specify the timing for a reel (4/4 time, with eighth notes as the basic unit, and timing of 120 half notes per minute). If chords are included in the .abc notation, the .midi output file will sound event better (the beat will be highlighted in the notated chords).

References

  1. See Walshaw's brief introduction to abc at <http://www.walshaw.plus.com/abc/>; last accessed Aug. 21, 2008.
  2. abcusers group on groups.io (account required), last accessed 4/2/2022
  3. ABCusers on Groups.io
  4. The Fiddler's Companion is free and may be accessed at <http://www.ibiblio.org/fiddlers/index.html>; last accessed August 21, 2008.
  5. Wil Macaulay, May 2004. Skink. Wil Macaulay, May 2004.
  6. Sun Microsystems. Java SE Downloads. Sun Microsystems.