chordii - produce a professional looking PostScript sheet-music
from an ascii file containing lyrics and chords information.
chordii [OPTIONS] FILE [FILE...]
chordii produces a postscript document from a lyrics file
containing chord indications and chorus delimiters. The document produced
contains the lyrics of a song, with the guitar chords appearing above the
right words. A representation of all chords used in the song is printed at
the bottom of the last page.
Extensive documentation can be found in the chordii User
Guide, available from the
Chordii download
page.
chordii takes both long options, starting with --,
and short options starting with a single -, according to the
getopt_long(3) conventions.
- --about -A
- Will print the "About Chordii..." message.
- --single-space
-a
- Automatically single spaces lines that have no chords.
- --chord-size=CHORD_FONT_SIZE
-c
- Sets the size, in points, of the font used to display chords to the
specified integer value.
- --chord-font=CHORD_FONT
-C
- Sets the font used to print chords to the specified name. That name must
be known to your PostScript Interpreter.
- --dump-chords-text
-d
- Generates a text chord chart of all internally known chords as well as
chords defined in the .chordrc file. Chords defined in the .chordrc file
are identified with the "(local)" caption. The printout is
suitable for input to the .chordrc file.
- --dump-chords
-D
- Generates a PostScript chord chart of all internally known chords as well
as chords defined in the .chordrc file. Chords defined in the .chordrc
file are identified with a small asterisk after the chord grid.
- --no-chord-grids
-G
- Disable printing of the chord grids for the whole input file(s). The
effect can be disable for any particular song by the usage of the
grid or g directive.
- --no-easy-chord-grids
-g
- Disable printing of grids for "easy" chords. Whether a builtin
chord is easy or not has been arbitrarily decided by the authors. The
general rule was that any chord in its major, minor, 7th or minor 7th was
"easy" while everything else (maj7, aug, dim, sus, etc...) was
"difficult". All chords defined in the .chordrc file or in the
input file are defined as "difficult".
- --chord-grids-sorted
-S
- Prints the chord grids in alphabetical order. Default is to print in the
order they appear in the song.
- --help -h
- Prints a short options summary.
- --toc -i
- Generates a table of contents with the song titles and page numbers. It
implies page numbering through the document. Index pages are not
numbered.
- --lyrics-only
-l
- Prints only the lyrics of the song.
- --even-pages-number-left
-L
- Places the odd and even page numbers in the lower right and left corners
respectively (for two-sided output). The default is all page numbers on
the right.
- --output=FILE
-o
- Sends PostScript output to FILE.
- --start-page-number=FIRST_PAGE
-p
- Numbers the pages consecutively starting with first_page (e.g. 1).
Without this option, each song restarts the page numbering at 1, and page
numbers are only put on subsequent pages of multiple page songs.
- --page-size=PAPER_SIZE
-P
- Specifies the paper size, "us", "letter",
"a4" or "a5". Default is "a4".
- --chord-grid-size=GRID_SIZE
-s
- Sets the size of the chord grids.
- --text-size=TEXT_SIZE
-t
- Sets the size, in points, of the font used to display the lyrics to the
specified integer value. The title line is displayed using that point size
+ 5. The subtitle is displayed using that point size - 2. The tablature is
displayed using this point size - 2.
- --text-font=TEXT_FONT
-T
- Sets the font used to print text to the specified name. That name must be
known to your PostScript Interpreter.
- --version
-V
- Prints version and patch level.
- --vertical-space=EXTRA_SPACE
-w
- Adds extra vertical space between the lines to improve readability.
- --transpose=SEMITONES
-x
- Sets up transposition to that number of semitones. Can not be zero. All
chord names must be build in the following way in order to be recognized:
{note-name}[#|b][^/]* [ '/' {note-name}[#|b][^/]* ]
That is, a valid note name, possibly followed by '#' or 'b',
followed by other modifier ('7', 'm', etc...). Many such construct can
make up a chord name, as long as they are separated by '/'.
{note-name} must appear in the list
'A','B','C','D','E','F','G'.
- --2-up -2
- Prints two logical pages per physical page.
- --4-up -4
- Prints four logical pages per physical page.
A line starting with a '#' is interpreted as a comment, and
generates no output. (although all your comments are automatically mailed to
the authors, and we read them at parties...)
Directives that appear between curly brackets ('{' and '}') have a
special meaning. They must be alone on a line. Blanks before the opening
bracket and after the closing bracket are not significant. Directives
suffixed by a colon require arguments.
Blanks inside a directive are not significant (except inside one
of the comments directives).
Supported directives are:
- titles:
TYPE
- Selects the placement of the titles. Currently supported are left
and center (default).
- start_of_chorus
or soc
- which indicates the start of a chorus (yep). The complete chorus will be
highlighted by a change bar, to be easily located by the player.
- end_of_chorus
or eoc
- marks the end of the chorus
- will call the printing of the rest of the line, highlighted by a grey box
(Useful to call a chorus, for example)
- will print the comment in an italic font ... well not really. It will
print the comment in the font used for printing chord names (which is
normally italic unless you specified a different chord_font).
- will print the comment inside a bounding box.
- new_song or
ns
- marks the beginning of a new song. It enables you to put multiple songs in
one file. It is not required at the beginning of the file.
- title: or
t:
- specifies the title of the song. It will appear centered at the top of the
first page, and at the bottom of every other page, accompanied there by
the page number, within the current song.
- subtitle: or
st:
- specifies a string to be printed right below the title. Many subtitles can
be specified
- define:
NAME base-fret OFFSET frets
STR1...STR6
- defines a new chord called NAME.
Example for a 6-string guitar:
{define Ab+: base-fret 1 frets x x 2 1 1 0}
The keyword "base-fret" indicates that the number
that follows (OFFSET) is the first fret that is to be displayed
when representing the way this chord is played.
The keyword "frets" then appears and is followed by
6 values. These values are the fret number [ 1 to n ] for each string
[STR1 to STR6] and are RELATIVE to the offset. A value of
"-", "X" or "x" indicates a string that is
not played.
Keywords "base-fret" and "frets" are
MANDATORY.
A value of 0 for a given string means it is to be played open,
and will be marked by a small open circle above the string in the grid.
The strings are numbered in ascending order of tonality, starting on the
low E (the top string). On output, a chord defined in the user's
.chordrc file will have a small asterisk near its grid, a chord defined
in a song will have two small asterixes.
At the beginning of every song, the default chords are
re-loaded and the user's .chordrc file is re-read. Chord definition of
new chords inside the text of a song are only valid for that song.
The syntax of a {define} directive has been modified in
version 3.5. Chordii will attempt to recognize an old-format
{define} and will accept it. It will, though, print a warning
inviting you to modify your input file to use the new syntax (the exact
{define} entry to use is provided as an example).
- pagetype:
TYPE
- Selects the page type. Currently supported page types are a4 and
letter.
This directive may only occur in the .chordrc file.
- textfont:
POSTSCRIPT_FONT
- same as -T command option
- textsize:
N
- same as -t command option
- chordfont:
POSTSCRIPT_FONT
- same as -C command option
- chordsize:
N
- same as -c command option
- no_grid or
ng
- will disable printing of the chord grids for the current song.
- grid or
g
- will enable the printing of the chord grids for the current song (subject
to the limitation caused by the usage of the -g option). This
directive will overide the runtime -G option for the current
song.
- new_page or
np
- will force a logical page break (which will obviously turn out to be a
physical page break if you are not in either 2-up or 4-up mode).
- new_physical_page
or npp
- will force a physical page break (in any mode).
- start_of_tab
or sot
- will cause chord to use a monospace (ie: non-proportional) font for the
printing of text. This can be used to enter 'tab' information where
character positioning is crucial. The Courier font is used with a smaller
point-size than the rest of the text.
- end_of_tab
or eot
- will stop using monospace font. The effect is implicit at the end of a
song.
- columns:
N or col: N
- specifies the number of columns on the pages of the current song.
- column_break
or colb
- forces a column break. The next line of the song will appear in the next
available column, at the same height as the last "columns"
statement if still on the same page, or at the top of the page
otherwise.
- $HOME/.chordrc
- Initial directives re-read after each song.
Run time options override settings from your .chordrc file. So the
assignement sequence of, for instance, the text size, will be: system
default, .chordrc, run-time option, and finally from within the song
itself.
All keywords are case independent.
Chordii will not wrap long lines around the right margin.
White space is not inserted inside the text line, even if white
space is inserted in the "chord" line above the text. The net
effect is that chord names can appear further down the line than what was
intended. This is a side effect from fixing an old "bug" that
caused the chord names to overlap. This bug will only manifest itself if you
have lots of chord but little text. Inserting white space in the text is a
good workaround.
In 2-up mode, if page-numbering is invoked on a document that has
an odd number of page, the page number for the last page will be printed at
the bottom right of the virtual page instead of the bottom right of the
physical page.
Copyright (C)2008 The Chordii Project
Copyright (C)1990-91-92-93 by Martin Leclerc and Mario Dorion