Update abcplay.sh -> abcplay.py and improve signal handling.
[blog.git] / posts / abcplay.mdwn
1 I've got a travel-size violin (by [Bill Whipple]) that I mess around
2 with.  I like a lot of traditional and celtic music, and I wanted
3 something that would provide both a visual and aural rendition of a
4 song to help me learn it.
5
6 Looking around, I found [ABC][] (see John Chamber's [page][JC] and
7 [tutorial][]), which is a simple, ASCII notation for sheet music.
8 There are lots of [software tools][] for processing ABC; my favorite
9 is [abcMIDI][] (which I've packaged in my [[Gentoo overlay]] and is
10 also packaged in the [Sunrise overlay][]).  `abcMIDI` provides several
11 useful programs:
12
13 * `abc2midi`: ABC to MIDI conversion, to listen to your music.
14 * `yaps`: ABC to PostScript conversion, to look at your music.
15 * `midi2abc`: MIDI to ABC conversion, when you can't find ABC source.
16
17 My favorite ABC tune repository is [The Session][], but there are also
18 search tools and repositories listed on the [ABC homepage][ABC] and
19 [JC's page][JC].
20
21 To make playing ABC files as easy as possible, I've written a little
22 script, [[abcplay.py]], which uses `abc2midi` to generate a MIDI file
23 for each tune and then plays them with [timidity++][].
24
25 [Bill Whipple]: http://www.wiplstix.com/
26 [ABC]: http://abcnotation.com/
27 [JC]: http://ecf-guest.mit.edu/~jc/music/abc/
28 [tutorial]: http://ecf-guest.mit.edu/~jc/music/abc/doc/ABCtutorial.html
29 [software tools]: http://abcnotation.com/software
30 [abcMIDI]: http://abc.sourceforge.net/abcMIDI/
31 [Sunrise overlay]: http://overlays.gentoo.org/proj/sunrise
32 [The Session]: http://www.thesession.org/
33 [timidity++]: http://timidity.sourceforge.net/
34
35 [[!tag tags/fun]]
36 [[!tag tags/python]]
37 [[!tag tags/tools]]