Introduction
Chordpack is a utility for typesetting and manipulating
chordpro
chord files. These are files used by
chord utility. The primary
goal of Chordpack is typesetting song-books using TeX typesetting system and
it's LaTeX macro package. However, Chordpack can do whatever else you might
want to do with chordpro files.
Chordpack can do the following tasks:
- Generate LaTeX source of songs/songbook
- Generate HTML version of songs/songbook
- Generate ASCII version of songs/songbook
- Generate ASCII version of songs/songbook omitting chords
- Transpose chordpro song to desired key
- Take ordinary ASCII notation of song with chords and output almost
chordpro version.
Quick introduction to chordpro format
Chordpack understands extension of chordpro format.
Chordpro is an ASCII format for marking chords. Chords are denoted in square
brackets. For instance
[G]Always [Em]look at the [Am7]bright [D7]side of [G]life [Em] [Am7] [D7]
is a notation for
G Em Am7 D7 G Em Am7 D7
Always look at the bright side of life
Repetition marks are denoted by
[: and
:] (
repetition
marks are only part of extension of chordpro format).
Besides this, chordpro format defines braced instructions (commands), most
important of which is
{title:I am a Title of the Song} .
Other commands include
{subtitle:...},
{start_of_choir},
{end_of_choir} etc.
You should use at most one command per line.
The important thing about chordpro format is that there are already lots of songs
on the web (see Online Guitar Archive -
OLGA for instance) in this format.
Command line usage of chordpack
The first thing to note is that the best printing result is achieved if you
use chordpack to produce LaTeX source. This however requires installation of
TeX and LaTeX2e macro package which some of you may find inconvenient. In
that case, you should generate HTML instead.
The usage is
chordpack <SWITCHES> <TASK> FILE ...
where there are lots of SWITCHES (also called options) explained later; TASK is one of the
following
- tex
- html
- ascii
- nochord
- transpose key-or-shift
- pro
You can find short description in previous section.
Task transpose has one parameter, namely either destination key of the song
or number of half-tones by which song has to be transposed up.
Switches apply to tex task only!
Chordpack reads input from FILEs or from standard input and produces the
result on standard output. The exception to this is option -f.
The switches are
- -f song-list-file
- -l language
- -b
- -c chord-style
- -s font-sizes
I advise to use switches -f and -b only. Other settings are better done
directly in input file. The use of switch -f in combination with tex task
is highly recommended.
-f song-list-file
Use song-list-file and output the result to file created from song-list-file
by removing its suffix and adding tex suffix. Song-list-file is a file
containing the list of song files as well as lines that are directly passed
to Chordpack. The lines directly passed to Chordpack differ from filenames
in that they start with space. For example:
Let file songbook.list contain
{toc}
{album:Two is Enough}
song-one.pro
second-song.pro
Let file song-one.pro contain only
{title:Just a Small Song}
[A]Hey [Gm]hey
and file second-song.pro contain only
{title:Not a Big One}
[G#m]Day is [G97maj]long and
[D#]Girls are [F]sweet
Then the result of using
chordpack -f songbook.list tex is the same as
the result of
chordpack tex songbookfile >songbook.tex given that file
songbookfile contains
{toc}
{album:Two is Enough}
{title:Just a Small Song}
[A]Hey [Gm]hey
{title:Not a Big One}
[G#m]Day is [G97maj]long and
[D#]Girls are [F]sweet
-l language
Sets language. Currently, this has effect on TeX typesetting and the only
supported language is Czech. If you make support for more languages, send me
one.
-b
This makes Chordpack transpose all songs being set to such a key so that
there are as few barre chords as possible. All tablatures (text inside
{start_of_tab} and
{end_of_tab}) are ignored in this case,
because transposition of tablatures in virtually impossible.
Well, in some remote future there may be some super AI program
to do that, but until then...
-c chord-style
Set the style of chord setting. There are four styles available:
jazz,
m,
mi and low. The default is m.
Also, the presence of
h letter in chord-style string turns on
Central-European (or at least German and Czech) style of denoting
last tone of C major key (English denote it B while German H).
-s font_sizes
Sets the sizes of fonts. These can be 0,1,2,3.
Chordpack versus Chord
Chordpack was written to surpass the
Chord program which generates
postscript from chordpro format. The main drawback was the setting of
chords.
Consider example typesetting of chord which looks like
| Eb7+ | Eb75- | Eb74sus | Eb97maj | Ebm97maj | Ebm9 | |
| Finally | he | closed | his | eyes | shut. |
and compare it to chordpack's
| | | | | | |
| Finally | he | closed | his | eyes | shut. |
This just touches on the quality of chord typesetting of chordpack. However,
chordpack has its weak spots as well when compared to Chord:
- Generates LaTeX source and not postsript (less convenient)
- Does not generate chord pickings
... and maybe other. The thing is I did not really want chord pickings, but
they can be added, if you users desire them! The main purpose was to set
chords nicely and enable easy setting of song-books. I believe that
the result going out of chordpack is close to perfect and I ain't going to
spell out every little annoyance I had to solve to get things looking well.