Paul Hardy's Tunebook Process
I produce some music tunebooks. This page contains an outline of the process that I followed in creating
the tunebooks, and in making them available in downloadable and printed forms. The work is done on a home PC under Windows 10.
Digital Music in ABC
My starting point is to create an ABC file with the digital definitions of the tunes.
An example is the ABC file of Paul Hardy's Session Tunebook. ABC is a simple format which has become a
standard for exchange of music notation by electronic media such as email. See the ABC notation page
for a description of ABC.
A typical ABC tune from my session tunebook looks like:
X:2012
T:Blue Eyed Stranger
R:Reel
C:Trad.
O:England
Z:Paul Hardy's Session Tunebook 2016 (see www.paulhardy.net). Creative Commons cc by-nc-sa licensed.
M:4/4
L:1/8
Q:1/4=160
K:G
"G"G2D2D2GF|"C"ED EF "G"G2A2|"G"B2d2 "D7"cB AG|"C"E2 "D7"F2 "G"G2 D2:|
"G"GA Bc d2G2|"C"ed cB "D7"A2D2|"G"GA Bc d2d2|"D7"B3c "G"d4|
"G"GA Bc d2G2|"C"ed cB "D7"A2GA|"G"B2d2 "D7"cBAG|"C"E2 "D7"F2 "G"G4|]
- X is the tune number. I allocate the numbers so all the tunes starting with A are from 1000, with B are from 2000, up to Z from 26000
- T is the tune title. It may have more than one T line.
- R is the rhythm. This is a reel.
- C is the copyright (or Trad. for traditional)
- O is the area of origin
- Z is a note on this transcription to ABC
- M is the metre (4 crochets/quarter notes in the bar)
- L is the default note length (a quaver/eighth note)
- Q is the tempo (160 crochets to the minute)
- K is the key (E minor)
- "G" is an accompaniment chord
- G2 is a crochet of a G note, etc. A scale of notes goes CDEFGABcdefgab.
- | is a bar line, :| is a repeat, |] is an end bar.
Finding and transcribing tunes
The tunes in my tunebooks have come from several sources:
- Created from scratch in ABC by me, from versions that I had learnt by ear.
- Transcribed into ABC from written scores that I had been given at workshops and sessions.
- Modified from ABC tunes found in ABC files and web pages downloaded from the Internet. There are several search engines
dedicated to making this easy, particularly JC's ABC Tune Finder.
Other valuable resources are the Fiddler's Companion, and The Session.
- Transcribed into ABC from digital sound files, particularly from MIDI files.
Manipulating tunes in ABC
I use a variety of utilities (mainly free or very low cost software) for manipulating ABC files:
- ABCExplorer is my current favourite for most work. This has a text editor
which colour codes the different elements of an abc tune, gives a preview of the score as you edit, and can play a tune as midi
through the computer speakers to get an audible sanity check. The author is known as 'Billig'.
- EasyABC is a recent alternative by Nils Liberg with similar edit and
preview functionality, can convert midi to abc, and has file sorting capabilities.
- ABCMus is an older program which still has the best capabilities for
automatically adding chords to melodies. It is by Henrik Norbeck.
- ABCEditor has some useful capabilities for producing indexes in the form
of "Cheat sheets". It was written by Alf Warnock and Elizabeth Scarlett.
- Melody Assistant is what I used originally for visualising
and playing abc, and for converting formats such as MIDI to abc.
Over the years I've spent a lot of time massaging the tunes into a consistent form, adding guitar chord suggestions,
simplifying ornaments, sorting out repeats and layouts, and generally making sure the tunes are playable from the dots.
Printing tunebooks
For producing the printable version of my tunebooks, I use the excellent program abcm2ps, from
moinejf.free.fr maintained by Jeff Moine. This takes an ABC file as input and generates a
PS (PostScript) file as output. It is controlled by a mechanism of formatting instructions, which can be read from format files,
such as the formatting instruction file (.fmt) for my Session Tunebook.
I then convert the PS to PDF (Adobe Portable Document Format).
Originally I used a free utility called GhostView (GSView) for this conversion, which in turn relies on the Ghostscript
interpreter - see the Ghostscript site. Now I use the
Adobe Acrobat Distiller software, as it is the de facto standard for PDF, and preferred by Lulu.com.
Index, Incipit and Cheat sheets
I have various mechanisms for finding tunes in the tunebooks:
- To produce the index at the back of the tunebook, I use a script from Jeff Moine called
abcmaddidx.tcl. This reads the PostScript output from abcm2ps and adds an index to it, by extracting all the title lines.
- To produce the html index to the
session tunebook, and the equivalent CSV version, I used Henrik Norbeck's ABCMus utility (see above), which has a "Make List/Index/etc" option in the File menu.
- To produce the csv index to the
printed session tunebook, I used a Python script to read the intermediate PostScript file and extract the page numbers and tune titles.
- To produce the "Cheat sheet", with the first couple of bars of each tune, I have a simple batch script (below) that concatenates all the abc files into one.
I then use EasyABC (see above) to sort this into alphabetic title order. I then use the ABCEditor utility (see above) which
reads an ABC file and creates another (much smaller) ABC file from it. The parameters I use
for the A4 portrait version are 2 columns, 9 characters and
15 lines of music per page. A5P is 1 column, 9 characters and 8 lines. A5L is 2 columns, 9 characters and 7 lines.
Batch files
- The batch file that runs abcm2ps, and then runs the tcl indexing script is similar to:
..\abcm2ps -O pgh_session_tunebook_raw.ps -F pgh_session_tunebook.fmt ^
..\..\abc\pgh_tunebooks\pgh_session_tunebook\pgh_session_tunebook.abc
pause 'hit return'
c:\tcl\bin\tclsh85 ..\..\tcl\index\abcmaddidx.tcl pgh_session_tunebook_raw.ps pgh_session_tunebook.ps
pause 'hit return'
del pgh_session_tunebook_raw.ps
- The batch file that concatenates the various tunebook abc files is similar to:
copy /b "..\pgh_tunebooks\pgh_session_tunebook\pgh_session_tunebook.abc"^
+"..\pgh_tunebooks\pgh_annex_tunebook\pgh_annex_tunebook.abc"^
+"..\pgh_tunebooks\pgh_possible_tunebook\pgh_possible_tunebook.abc"^
pause 'hit return'
Uploading to the web for download
I have a web site of my own, so I used a free FTP utility (Filezilla) to upload the
abc, PDF, and html files. The html files of the web site (like this page) are written by hand in html 4 using a text editor (TextPad) which colour-codes the html elements. The html pages use a
cascading style sheet called
hardy.css to get consistent visualisation.
Publishing for print-on-demand
I used the biggest Internet print-on-demand company called Lulu.com to make the tunebook be
orderable in a nicely printed and bound
form. It has easy to use publishing wizards that talk you through choosing a book size and binding, designing front and back
covers, and uploading the contents as PDF. You can order the books in any county and it will print, bind and ship them from its
nearest printer (in Spain for Europe).
Lulu does insist that all fonts are embedded in the PDF files you upload, or are in a small standard set on the server. Originally
the tunebook used Times and Helvetica which I couldn't work out how to embed (and weren't on the server) so I had to persuade
abcm2ps to use Verdana instead. Also Lulu was reluctant to take a PDF generated from GhostScript, so that is why I switched to
using Acrobat Distiller.
Python scripts
I use a couple of Python scripts to automate the creation of derivative tunebooks, e.g.
creating Paul Hardy's Basic Tunebook by selecting tunes from the main session tunebook..
This process uses a definition abc template file which drives the script to create
the basic tunebook abc file.
Go up to Hardy home page