mkogg.py: Fix 'self.get_mp4_metadata(self, source)'
[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++][].  Because the
24 processing is so similar, `abcplay.py` also plays [LilyPond][] files,
25 using `lilypond` to convert them to MIDI.  Run
26
27     $ abcplay.py --help
28
29 for usage information.
30
31 [Bill Whipple]: http://www.wiplstix.com/
32 [ABC]: http://abcnotation.com/
33 [JC]: http://ecf-guest.mit.edu/~jc/music/abc/
34 [tutorial]: http://ecf-guest.mit.edu/~jc/music/abc/doc/ABCtutorial.html
35 [software tools]: http://abcnotation.com/software
36 [abcMIDI]: http://abc.sourceforge.net/abcMIDI/
37 [Sunrise overlay]: http://overlays.gentoo.org/proj/sunrise
38 [The Session]: http://www.thesession.org/
39 [timidity++]: http://timidity.sourceforge.net/
40 [LilyPond]: http://lilypond.org/
41
42 [[!tag tags/fun]]
43 [[!tag tags/python]]
44 [[!tag tags/tools]]