My wife loves Christmas, and she loves singing, so every year she looks forward
to singing Christmas carols with great anticipation, and I don't mean the Hollywood
stuff like Jingle Bells or White Christmas, I mean the old carols from
way, way back, like before the relentless march of technology replaced woad with indigo. Inevitably some time in
early December she digs out the Oxford Book of Carols and asks me to accompany
some singing on the piano. Now the Oxford Book of Carols is a great book, but all the
music in it is in four-part vocal harmony, which is about easy to sight-read
on the piano as climbing a mistletoe tree in a blizzard.
So this year (written in 2004) I'm getting ahead of the game. I've gone through
a bunch of good Christmas songs and written them out in fakebook style, using
the software I put together for my
other project. These include some really amazing songs which are part of our
common heritage and really deserve to be widely known, so while I'm at it
I'm putting them out there for everybody else to use too.
Many thanks to my wife Anne for help with the chord arrangements, though the final
decisions here are all mine, and my musical ability is pretty sketchy,
so if you think the chords for a song are not what you're used to or are just plain
wrong, you should blame me. I wouldn't take these versions as authoritative
by any means.
The Tunes:
Pick your key and click on a format.
More tunes may follow as I get the time to enter them, someday.
Jaypegs and midis and stuff, oh my!
What are all these three-letter acronym links on this page?
abc
ABC is a portable, human readable format for writing down music.
It's very handy, easy to learn and use, and is supported by a ton of free software
and shareware. If you're into music and you don't know about it, you should.
pdf
Stands for "Portable Document Format", readable by the free Adobe Acrobat Reader. Click on 'pdf' to get nice, printable sheet music. These PDF files were created by abcm2ps and Ghostscript
jpg
An image of the sheet music. You can use this if for some reason PDF doesn't work for you. To zoom in and make the images larger, try clicking on them--the zoom behavior depends on your browser. Also created by abcm2ps and Ghostscript.
midi
"MIDI" stands for Music Instrument Digital Interface. Clicking on the "midi" link in one of the tunes should make music come out of your computer. If it doesn't then give that friend of yours who knows computers a call.
I know mediocre midi is an abomination in the eyes of God (Calliope, anyway), and hardly qualifies to be called "music", but these midis might be helpful to those who don't read sheet so good. I find them helpful when trying to find the right range to sing a tune in.
How did you do all this?
If I have accomplished great things, it is because I have stood on the shoulders of giants. --Isaac Newton
Actually, I did very little, but re-used a lot of very handy things. Here is a list of references and inspirations:
HTML::Mason is a set of Perl libraries
for building web sites. Inspired by this article about using Mason to build a photo gallery, I used the caching and autohandling features to build this site.
I upload one version of each song in ABC format, and all the other formats in all the other keys are generated on-demand and cached. The cache is keyed to the original file, so if I make changes to it, the other versions are regenerated when they're requested.
ABC is a simple, portable way to transcribe music that's been around for more than a dozen years. Since it's simple and also open, it's inspired a whole bunch of useful free software around it, including some of the following.
abcm2ps is software that converts ABC music to PostScript, a printer format developed by Adobe. abcm2ps is released under the GNU General Public License (GPL) and PostScript is an open standard, and all these free and open standards make all this work possible!
abc2midi and abc2abc are programs from the abcMIDI project, also released under the GNU GPL. The former creates the midi files on the site, and the latter handles transposing keys.
Ghostscript is a PostScript interpreter, which lets me change the PostScript output from abcm2ps into jpg and PDF files. Did I mention the GPL?
The Stephen Foster Song Book, Richard Jackson, Dover Publications, 1974. This has been a primary reference so far. A very nice presentation of the original sheet music, I'd highly recommend it.
"A Treasury of Stephen Foster", Random House, 1946, is helpful and interesting.
Mark Twain's America, A Portrait In Piano" is an album by Jacqueline Schwab, highly recommended if you're looking for ideas and approaches to music of this era. Someday I expect Jacqueline Schwab's playing to be part of the dictionary entry for the word "sublime."
Can I Have One, Too?
Well, sure, kid. The ludicrously tiny collection of scripts that generates this site is available right here. It's under the GPL, too. Help yourself. Once your site is up all you have to do is copy .abc files into the abc-src directory and everything else takes care of itself.