Xpose NAME xpose - format/transpose lyrics and chord file SYNOPSIS xpose [-option ...] [ filename... ] DESCRIPTION xpose (based on the input language defined by the tool chord(l)) produces text output from a lyrics file containing chord indications and chorus delimiters. If no file name is supplied, xpose reads from the standard input. When used with the -x option, the chords of the song can be transposed either up or down a specified number of halfsteps to place the song in any key. The output produced contains the lyrics of a song, with the guitar chords appearing above the correct words. A representation of all chords used in the song is printed at the bottom of the last Page. Because the output is text only, it can be readily imported into your favorite word processor, or printed as is. Where possible, options were implemented to have similar behavior to those of chord. OPTIONS -c Chord_font size text Cause Chord_font size text to be prepended to each of the chord lines of the output. -C Chord_font name text Cause Chord_font name text to be prepended to each of the chord lines of the output. -d Dumps the list and description of all internally known chords. -D Currently not implemented. Included for compatibility with chord. -h Prints a short options summary. -H filename Causes filename to be read for initial directives (typically user-defined chords) instead of $HOME/.chordrc in UNIX or .\\chord.rc in DOS and s:.chordrc on the Amiga. -l Prints only the lyrics of the song. Unlike chord no chord representations are printed at the end of the song. -t text_font size text Cause text_font size text to be prepended to each of the text lines of the output. -T Text_font name text Cause Text_font name text to be prepended to each of the text lines of the output. -2 Currently not implemented. Included for compatibility with chord. -4 Currently not implemented. Included for compatibility with chord. -x [+/-] n Transposes all chords up n halfsteps if n is positive or down or down n halfsteps if n is negative. Unless the -# option is specified, resulting chords will be printed in flat (b) keys. -# Causes the output chords to be printed in their sharp (#) rather than their flat (b) forms. The default is flat form. -b Causes the output chords to be printed in their flat (b) rather than their sharp (#) forms. The default is flat form. -o filename Causes the output to be placed into filename rather than appearing on the standard output. KEYWORDS A line starting with a '#' is interpreted as a comment, and generates no output. Directives that appear between braces ('{' and '}') have a special meaning. They must be alone on a line. Blanks inside a directive are significant. Known directives are: start_of_chorus or soc which indicates the start of a chorus. The complete chorus will be highlighted by a vertical bar (|), to be easily located. end_of_chorus or eoc marks the end of the chorus comment: or c: will enclose the line in braces. (Useful to call a chorus, for example) 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 at the point it is defined in the file. subtitle: or st: specifies a string to be printed (ideally right below the title; however it appears wherever defined in the file). Many subtitles can be specified define:name offset str1 ... str6 defines a new chord called "name", starting at fret "offset". The following numbers are the fret number [ 1 to n ] for each string [str1 to str6] and are RELATIVE to the offset. A value of -1 as the fret number on string X means that string X is to be buffed, or silenced. This will be represented by and "X" appearing on the corresponding string. The strings are numbered in ascending order of tonality, starting on the low E (the top string). Either a single space or a comma (but not both) can be used to delimit the fields within a define. textfont: Text_font name text same as -T command option textsize: text_font size text same as -t command option chordfont: Chord_font name text same as -C command option chordsize: Chord_font size text same as -c command option SEE ALSO chord(l), rechord(l) FILES $HOME/.chordrc (see CAVEATS section) Initial directives (typically user-defined chords) instead of $HOME/.chordrc in UNIX or .\chord.rc in DOS and s:.chordrc on the Amiga. Unlike chord these are currently not re-read at the beginning of every song. Definition of new chords are preserved for the remainder of the execution. CAVEATS The -D -2 and -4 options do nothing. Unlike chord currently chords are not overwritten by a define directive. User-defined chords appear in the chord representation as well as andy xpose defined chords. An option should be added to make this behavior optional. CREDITS Thanks to Martin Leclerc and Mario Dorion for providing chord and for defining the language used by xpose. Although I used none of their code, I used many of their ideas as well as their fingerings for the chords Thanks to Mike "Dodger" Patnode for providing the getopt(l3) routine enabling the Quick C implementation. COPYRIGHT Copyright 1992 by Charles Bradley Slaten AUTHORS Charles Bradley Slaten (cbs@sbctri.sbc.com) AMIGA PORTATION Peter Herter