diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 00:44:40 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 00:44:40 +0000 |
commit | b4fc5f639874db951177ec539299d20908adb654 (patch) | |
tree | 52f08823ca58fffe3db6a9b075635038c567626c /Master/texmf-dist/doc/latex/songbook/contrib | |
parent | dec3d98ebe442d7ea93efbaa8dd2e2be8149a467 (diff) |
doc 4
git-svn-id: svn://tug.org/texlive/trunk@80 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/songbook/contrib')
-rw-r--r-- | Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBook.tex | 223 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBookOH.pdf | bin | 0 -> 82042 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBookWB.pdf | bin | 0 -> 73728 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/songbook/contrib/README | 35 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/NothingButTheBlood.crd | 22 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/crd2sb | 243 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/crd2sb.txt | 96 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/songbook/contrib/modulate | 269 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/songbook/contrib/texchord.sty | 467 |
9 files changed, 1355 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBook.tex b/Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBook.tex new file mode 100644 index 00000000000..8ec964c1885 --- /dev/null +++ b/Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBook.tex @@ -0,0 +1,223 @@ +%%% rcsid = @(#)$Id: CarolBook.tex,v 1.7 2002/02/24 03:04:20 christopher Exp $ +%%%%%% +%% +%% ============================== +%% Carol Songbook (CarolBook.tex) +%% ============================== +%% +%% Words transcribed by Christopher Rath. My primary source of copyright +%% dates and lyrical authorship was ``The Book of Common Praise'', (c) +%% 1938, published by the Anglican Book Centre, Toronto, Canada. +%% Supplementary materials used were, ``Songs of Christmas'', a carol +%% sheet printed each year by The Ottawa Citizen newspaper; The English +%% Folksongs Archive (http://www.acronet.net/\~robokopp/english.html); +%% and, ``Christmas, 100 Seasonal Favourites'', (c) 1992, published by +%% Hal Leonard Publishing Corp. +%% +%% Compiled by Christopher Rath <christopher@rath.ca>. I believe that all +%% of the words to the carols contained in this file are in the public +%% domain; I am aware that some of the music to these carols is still +%% under copyright, however, no music is contained in this compliation. +%% +%%%%%% +%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% P R E A M B L E B E G I N S %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[12pt,legalpaper]{book} +\usepackage{latexsym,fancyhdr,palatino} + +%%\usepackage[chordbk]{songbook} %% Words & Chords edition. +%%\usepackage[chordbk,compactsong]{songbook} %% Words & Chords edition. +\usepackage[wordbk]{songbook} %% Words Only edition. +%%\usepackage[overhead]{songbook} %% Overhead Transparency edition. + +%%% +% Revision Date and Release Date definitions. +% +% \RelDate - The last time this songbook was released. Set this +% date each time a new release/update of the songbook +% is generated. +% \RevDate - The last time a particular song was revised in any +% way. This command will be renewed inside every +% song. +%%% +\newcommand{\RelDate}{11~December,~1999} +\newcommand{\RevDate}{\today} + +%%% +% If we're in WordBk mode then reset the page layout spec. +% +\ifWordBk + \setlength{\headsep} { .2 in} + \setlength{\textheight} {9.2 in} +\fi + +%%% +% Title page information. +%%% +\title{Songs For Christmas} +\author{Compiled by Christopher Rath $<$\texttt{crath@cyberus.ca}$>$} +\date{Revised: \RevDate} +% +\markboth{Songs For Christmas}{} + +%%% +% Redefine the copyright print macro to be an empty field. +%%% +\renewcommand{\CpyRt}[2]{\vspace{.5ex}} + +%%% +% Change ``W&M:'' constant to an empty string. +%%% +\renewcommand{\SBWAndMTag}{\relax} + +%%% +% Change the amount of space allowed between songs (only when +% in WordBk mode). +%%% +\ifWordBk + \renewcommand{\SpaceAfterSong}{\vspace{0ex plus15ex minus5ex}} +\fi + +%%% +% Redefine the keep whole song on same page flag. +%%% +\SamepageModefalse + +%%% +% Redefine fonts from SongBook style that I don't like. +%%% +\font\myTinySF=cmss8 at 8pt +\renewcommand{\CpyRtInfoFont}{\tiny\myTinySF} + +%%% +% Define fonts to use in the headers and footers of the songbook. +%%% +\newcommand{\LHeadFont}{\normalsize} % = cmr12 at 12pt +\newcommand{\CHeadFont}{\normalsize\rm} % = cmr12 at 12pt +\newcommand{\RHeadFont}{\normalsize} % = cmr12 at 12pt +\newcommand{\LFootFont}{\scriptsize} % = cmr8 at 8pt +\newcommand{\CFootFont}{\tiny\myTinySF} % = cmss8 at 8pt +\newcommand{\RFootFont}{\scriptsize} % = cmr8 at 8pt + +%%% +% Turn on and define fancy page heading/footing definition. +%%% +\pagestyle{fancy} + +\ifChordBk + % It's a words & chords songbook... + \addtolength{\headwidth}{\marginparsep} + \addtolength{\headwidth}{\marginparwidth} + \renewcommand{\headrulewidth}{0.4pt} + \renewcommand{\footrulewidth}{0.4pt} + \fancyhead[LE,RO]{\LHeadFont\emph{\leftmark\/}\SBContinueMark} + \fancyhead[CE,CO]{\CHeadFont\thepage} + \fancyhead[RE,LO]{\RHeadFont\RelDate} +\else\ifOverhead + % It's an overhead... + \renewcommand{\footrulewidth}{0pt} + \renewcommand{\headrulewidth}{0pt} + \fancyhead[LE,RO]{} + \fancyhead[CE,CO]{} + \fancyhead[RE,LO]{} +\else\ifWordBk + % It's a words only songbook... + \addtolength{\headwidth}{\marginparsep} + \addtolength{\headwidth}{\marginparwidth} + \renewcommand{\headrulewidth}{0.4pt} + \renewcommand{\footrulewidth}{0.4pt} + \fancyhead[LE,RO]{\LHeadFont Songs For Christmas} + \fancyhead[CE,CO]{\CHeadFont\thepage} + \fancyhead[RE,LO]{\RHeadFont\RelDate} +\fi\fi\fi + +\fancyfoot[LE,RO]{\LFootFont Last Revised: \RevDate} +\ifSongEject + \fancyfoot[CE,CO]{\CFootFont} +\else + \fancyfoot[CE,CO]{\CFootFont} +\fi +\fancyfoot[RE,LO]{\RFootFont Compiled by Christopher Rath $<$\texttt{crath@cyberus.ca}$>$.} + +%%% +% Create some extra macros not used by this file, but used by +% another file \input'ed by this one. +%%% +\newif\ifSongSheet\SongSheetfalse +\newcommand{\SSPageBrk}{\relax} + +%%% +% Turn on/off index-file generation. Uncomment the \makeindex line to +% turn index generation on; comment it out to turn index generation +% off. +%%% +\makeTitleIndex %% Title and First Line Index. +\makeTitleContents %% Table of Contents. +%\makeKeyIndex %% Index of song by key. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% D O C U M E N T B E G I N S %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} + +%%% +% Font selection for document's default font. +%%% +\SBDefaultFont + +%%% +% Declare start of Front-Matter. +%%% +\frontmatter + +%%% +% Uncomment "\maketitle" statement to make a title page. +%%% +%\maketitle +\mainmatter +\ifWordBk + \twocolumn +\fi + +%%% +% Songbook begins. +%%% + +\mainmatter +\ifWordBk + \twocolumn +\fi + +%%% +% Songbook begins. +%%% + +\input CarolBookBody.tex + +%%% +% Document ends. +%%% +\end{document} +\bye + +% Local Variables: +% LaTeX-item-indent: -1 +% LaTeX-indent-level: 2 +% TeX-brace-indent-level: 2 +% TeX-auto-untabify: nil +% TeX-style-local: style/ +% End: diff --git a/Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBookOH.pdf b/Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBookOH.pdf Binary files differnew file mode 100644 index 00000000000..309f9f328b8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBookOH.pdf diff --git a/Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBookWB.pdf b/Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBookWB.pdf Binary files differnew file mode 100644 index 00000000000..3e047d69437 --- /dev/null +++ b/Master/texmf-dist/doc/latex/songbook/contrib/CarolBook/CarolBookWB.pdf diff --git a/Master/texmf-dist/doc/latex/songbook/contrib/README b/Master/texmf-dist/doc/latex/songbook/contrib/README new file mode 100644 index 00000000000..9288bbca023 --- /dev/null +++ b/Master/texmf-dist/doc/latex/songbook/contrib/README @@ -0,0 +1,35 @@ +@(#)$Id: README,v 1.7 2003/08/31 03:23:59 christopher Exp $
+
+This directory contains user contributed macros and programs intended/suitable
+for use with the LaTeX SongBook Style.
+
+Content List (in alphabetic order):
+
+ CarolBook - a songbook.sty formatted book containing words for all the
+ Christmas songs I've been able to find where the words are now in the
+ public domain. PDF versions of the file are included for quick
+ and easy use.
+
+ crd2sb - a perl script which converts Chord files into Songbook files.
+ Contributed by Abel Chow <abel@g2networks.com>. A postscript formatter for
+ Chord songs can be ftp'ed from:
+ ftp://ftp.uu.net/doc/music/guitar/resources/misc/CHORD/
+
+ modulate - a perl script for modulating a song from one key to another.
+ Contributed by Christopher Rath <crath@cyberus.ca>.
+
+ texchord.sty - LaTeX macros for printing guitar fingering charts.
+ Contributed by Joel M. Hoffman <joel@wam.umd.edu>. Note, this style is NO
+ LONGER actively supported by Joel.
+
+
+
+
+
+
+Local Variables:
+ mode: indented-text-fill
+ fill-column: 79
+End:
+
+
diff --git a/Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/NothingButTheBlood.crd b/Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/NothingButTheBlood.crd new file mode 100644 index 00000000000..0f3662d7aa2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/NothingButTheBlood.crd @@ -0,0 +1,22 @@ +{t:Nothing But the Blood} +{st:Robert Lowry} +{st:Public Domain} +# key: E +# tex: \SBRef{\Hos{} Songbook 1}{\#65} +# tex: \FLineIdx{What can wash away my sin?} +[E]What can [A/E]wash [B/E]a[E]way my sin?[B/D#] +[C#m7]Nothing but the blood of [F#m]Je[F#m/B]-[E]sus. +[E]What can [A/E]make [B/E]me [E]whole again?[B/D#] +[C#m7]Nothing but the blood of [F#m]Je[F#m/B]-[E]sus. + +{soc} +[E]O, [F#m7]precious [G#m7]is the [C#m]flow +[F#m]That [E/G#]makes me [F#m/A]white [B]as [C#m]snow.[B/C#]- [A/B] +[E]No [F#m7]other [G#m7]fount I [C#m]know, +[A]Nothing but the [C#m]blood of [F#m]Je[F#m/B]-[E]sus. +{eoc} + +This is all my righteousness, +Nothing but the blood of Jesus. +This is all my hope and peace, +Nothing but the blood of Jesus. diff --git a/Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/crd2sb b/Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/crd2sb new file mode 100644 index 00000000000..eaae05dfd89 --- /dev/null +++ b/Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/crd2sb @@ -0,0 +1,243 @@ +#!/usr/local/bin/perl
+
+# crd2sb - convert chordpro files to songbook (LaTeX style)
+
+# Usage: crd2sb filename.crd [filename2.crd] . . [filenamen.crd]
+
+# The input files are "*.crd" and the output files are "*.tex" (in the
+# current directory).
+
+# $Id: crd2sb,v 1.9 1997/12/05 19:25:05 abel Exp $
+
+# (C)Copyright 1997 Abel Chow <abel@g2networks.com>
+
+# You may distribute under the terms of the Artistic License,
+# as specified in the relnotes.txt file.
+
+use File::Basename;
+
+$debuglevel = 0;
+$date = localtime;
+
+sub Init
+{
+ $title = "";
+ $key = "";
+ $copyright = "Unknown";
+ $wandm = "Unknown";
+ $sref = "";
+ $ccli = "";
+ $lyrics = "";
+
+ $nextenv = "SBVerse";
+}
+
+sub EndSong
+{
+ unless ($title) {
+ print STDERR "$file:$.: No title defined for song.\n";
+ Init();
+ return;
+ }
+ $ccli = "\\NotCCLIed" if $copyright =~ /\bPublic Domain\b/;
+
+ print STDERR "$file:$.: key undefined for \"$title\".\n" unless $key;
+ print STDERR "$file:$.: copyright info undefined for \"$title\".\n" if $copyright eq "Unknown";
+ print STDERR "$file:$.: author undefined for \"$title\".\n" if $wandm eq "Unknown";
+# print STDERR "$file:$.: scripture ref. undefined for \"$title\".\n" unless $sref;
+ print STDERR "$file:$.: CCLI status undefined for \"$title\".\n" unless $ccli;
+
+ if ($env) {
+ DoEnd($env);
+ }
+
+ print "% This file is machine generated. Do not edit.\n";
+ print "% crd2sb $file\n";
+ print "% created on $date\n";
+ print "\\begin{song}{$title}{$key}\n";
+ print " {$copyright}\n {$wandm}\n {$sref}\n {$ccli}\n";
+ print "$lyrics";
+ print "\\end{song}\n";
+ Init();
+}
+
+sub DoNewSong
+{
+ EndSong();
+ Init();
+}
+
+sub DoSubTitle
+{
+ ($_) = @_;
+ # figure out if it's a copyright
+ if (s/\(C\)// + s/\bCopyright\b//) {
+ s/^\s+//;
+ s/\s+$//;
+ $copyright = $_;
+ return;
+ }
+ if (/Public Domain/) {
+ $copyright = $_;
+ return;
+ }
+ s/^W&M://;
+ s/^\s+//;
+ s/\s+$//;
+ $wandm = $_;
+}
+
+sub DoComment
+{
+ ($_) = @_;
+ print STDERR "$file:$.: > $_\n" if $debuglevel > 0;
+ if (($p) = /^tex:\s*(.*)/) {
+ $lyrics .= "$p\n";
+ return;
+ }
+ if (($p) = /^note:\s*(.*)/) {
+ $lyrics .= "\\SBMargNote{$p}\n";
+ return;
+ }
+ if (($p) = /^intro:\s*(.*)/) {
+ $p =~ s/#/\$\\sharp\$/g;
+ $p =~ s/b/\$\\flat\$/g;
+ $p =~ s/\|/\$|\$/g;
+ $lyrics .= "\\SBIntro{\\ChFont $p}\n";
+ return;
+ }
+ if (/^section:/) {
+ $nextenv = "SBSection";
+ return;
+ }
+ # figure out if there's a CCLI ref anywhere
+ $ccli = "\\CCLIed" if /\bccli\b/i;
+ # key setting
+ if (/^\s*key:\s*(.*)/) {
+ my($k) = $1;
+ if ($k !~ /^[A-G]\S*/) {
+ print STDERR "$file:$.: invalid key $k\n";
+ }
+ $k =~ s/#/\$\\sharp\$/g;
+ $k =~ s/b/\$\\flat\$/g;
+ $key = $k;
+ return;
+ }
+ $sref = $1 if /^\s*sref:\s*(.*)/;
+}
+
+sub DoBegin
+{
+ my($myenv) = @_;
+ printf STDERR "$file:$.: missing env $env" if $env;
+ $env = $myenv;
+ $lyrics .= "\\begin{$env}\n";
+ $first = 1;
+}
+
+sub DoEnd
+{
+ print STDERR "$file:$.: mismatched quote\n" if $quote;
+ $quote = 0;
+ printf STDERR "$file:$.: missing env $env\n" unless ($env);
+ $lyrics .= "\\end{$env}\n";
+ $env = "";
+}
+
+unless (@ARGV) {
+ print "usage: crd2sb filename.crd [filename2.crd] ... [filenamen.crd]\n"
+}
+
+Init();
+foreach $file (@ARGV) {
+ ($base, $path, $type) = fileparse($file, '\.crd');
+ unless ($type) {
+ print STDERR "$file: not a Chordpro (*.crd) file\n";
+ next;
+ }
+ $outfile = "$base.tex";
+ print STDERR "#### $file -> $outfile ####\n"
+ if $debuglevel > 0;
+ unless (open(INFILE, $file)) {
+ print STDERR "$file: $!\n";
+ exit;
+ }
+ close(STDOUT);
+ unless (open(STDOUT, ">$outfile")) {
+ print STDERR "$outfile: $!\n";
+ exit;
+ }
+ while (<INFILE>) {
+ if (/^#\s+(.*)/) {
+ DoComment($1);
+ next;
+ }
+ next if /^#/;
+ # directive
+ if (m/^\s*{([^\}:]+)(:\s*([^\}]*))?}/) {
+ # title
+ if ($1 eq "title" || $1 eq "t") {
+ $title = $3; next;
+ }
+ if ($1 eq "subtitle" || $1 eq "st") {
+ DoSubTitle($3); next;
+ }
+ if ($1 eq "comment" || $1 eq "c") {
+ DoComment($3); next;
+ }
+ # new_song
+ if ($1 eq "new_song" || $1 eq "ns") {
+ DoNewSong(); next;
+ }
+ if ($1 eq "start_of_chorus" || $1 eq "soc") {
+ DoBegin("SBChorus"); next;
+ }
+ if ($1 eq "end_of_chorus" || $1 eq "eoc") {
+ DoEnd("SBChorus"); next;
+ }
+ next;
+ }
+ if (/{/ || /}/) {
+ print STDERR "$file:$.: unmatched brace\n";
+ }
+
+ # strip blank spaces and comments
+ s/\s+/ /;
+ s/^\s//;
+ s/\s$//;
+ s/&/\\&/;
+ unless ($_) { # blank line
+ DoEnd() if $env;
+ next;
+ }
+ while (/"/) { # "
+ if ($quote) {
+ $quote = 0 if (s/"/\'\'/); # " }
+ }
+ else {
+ $quote = 1 if (s/"/\`\`/); # " }
+ }
+ }
+ # protect the parens in chords
+ s/(\[[^\[\]]*)\(/$1</g;
+ s/\)([^\[\]]*\])/>$1/g;
+ s/\(/{\\em /g;
+ s/\)/}/g;
+ tr/\<\>/\(\)/;
+
+ s/\|/\$|\$/g;
+ s/\[([^\[\]]*)\]-/\\Ch{$1}{\\SBem}/g;
+ s/\[([^\[\]]*)\]([A-Za-z0-9,;:.!"'`]+)/\\Ch{$1}{$2}/g; #'`
+ s/\[([^\[\]]*)\]/\\Ch{$1}{}/g;#}}
+ s/\.\.\./\\ldots{}/g;
+
+ unless ($env) {
+ DoBegin($nextenv) unless $env;
+ $nextenv = "SBVerse";
+ }
+ $lyrics .= "\n" if $env && !$first;
+ $first = 0;
+ $lyrics .= "$_\n";
+ }
+ DoNewSong();
+}
diff --git a/Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/crd2sb.txt b/Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/crd2sb.txt new file mode 100644 index 00000000000..82d07892155 --- /dev/null +++ b/Master/texmf-dist/doc/latex/songbook/contrib/crd2sb/crd2sb.txt @@ -0,0 +1,96 @@ +$Id: crd2sb.txt,v 1.3 1997/11/21 21:38:35 abel Exp $ +(C)Copyright 1997 Abel Chow <abel@g2networks.com> + +What does ``crd2sb'' do? + +usage: crd2sb filename.crd + +``crd2sb'' takes Chordpro songs and generates + + What's the format of a `crd' file? + +---------------------------------------------------------------------- + +Typically, a song file looks like: + +{t:Song Title} +{st:Author} +{st:(C)Copyright information} +# key: G +# sref: ScriptRef 3:16 +# CCLI +# intro: G D C D +[|][G]This [Bm]is a [|][C]song. +[|][Dsus]La, la, [|][D]la, la, la. +[|][G]This [Bm]is a [|][C]song. +[|][Dsus]This is a[|D]nother line.[|][Dsus] [/] [D] [Dmaj7][|][D] + +{soc} +[|][G]This is the [|][D]cho[Dsus]-[|][D]-[A]rus. +[|][Am]This is the [|][G]cho[D]rus. +[|][G]This is the [|][D]cho[Dsus]-[D]-[|][A]rus. +[Am]This [|][C]is the [|][Gsus]cho[|][G]rus. +{eoc} + +[|][G]This [Bm]is the [|][C]second verse. +[|][Dsus]La, la, [|][D]la, la, la ... + +---------------------------------------------------------------------- + +Generally, if you have multiple chord changes within a word, you'll +want to use the [chord]- structure. This will put a dash in the +chordbook output (but not the wordbook or overhead versions). + +---------------------------------------------------------------------- + + Comment Directives + +Comments are any line that begins with `#'. Certain directives are +embedded in the comments so that Chordpro doesn't see them (but they +can be parsed by ``crd2sb''). + +The currently supported comment directives are: + +key, to specify the key of the song, e.g. +# key: G + +section, for when you want a section defined instead of a verse, e.g. +# section: + +note, \SBMargNote{} +# note: 1997 Missions Conference Theme Song + +tex, a catchall for putting TeX in the file +# tex: \CBPageBrk + +intro, for \SBIntro +# intro: |G D C| + +---------------------------------------------------------------------- + + Supported Chordpro Directives "{directive:args}" + +{title:Title}, {t:Title} -> title of song +{subtitle:Subtitle}, {st:Subtitle} -> used for author, copyright +{comment:This is a comment.}, {c:This is a comment} -> ignored +{new_song}, {ns} -> ends current song, starts a new song +{start_of_chorus}, {soc} -> Beginning delimiter for chorus. +{end_of_chorus}, {eoc} -> Ending delimiter for chorus + +---------------------------------------------------------------------- + + Chordpro/SongBook.sty Mappings + +[Asus]word -> \Ch{Asus}{word} +[Asus]- -> \Ch{Asus}{\SBem} +[Asus][A] -> \Ch{Asus}{}\Ch{A}{} +(abc) -> {\em abc} +... -> \ldots + +---------------------------------------------------------------------- + + To Do + +- Create example file exercising all the features. +- Explain [|]. +- Rewrite docs. diff --git a/Master/texmf-dist/doc/latex/songbook/contrib/modulate b/Master/texmf-dist/doc/latex/songbook/contrib/modulate new file mode 100644 index 00000000000..39fe8b8674c --- /dev/null +++ b/Master/texmf-dist/doc/latex/songbook/contrib/modulate @@ -0,0 +1,269 @@ +#!/usr/bin/perl -w
+###
+# modulate - Modulate a song from one key to another.
+#
+# @(#)$Id: modulate,v 1.5 2002/01/17 03:19:24 christopher Exp $
+# Copyright 1998--2002 Christopher Rath <christopher@rath.ca>
+#
+# This package is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later
+# version.
+#
+# This package is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied
+# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+# PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# USAGE: modulate [+-]<semitones> [filename]
+#
+# DESCRIPTION:
+#
+# Modulate a song from one key to another. The destination key is
+# required to determine how to handle some troublesome note names (e.g.,
+# is F to be named E# or F.
+#
+# This program is hard-wired to my own songbook coding style, some
+# customization will be required if your coding style differs much from
+# mine.
+#
+# To use this program, feed a song into the modulate program. The
+# beginning of the song MUST begin with a \begin{song} statement. Any
+# text preceeding the \begin{song} will be ignored.
+#
+# For example, feeding this:
+#
+# \begin{song}{What A Mighty God We Serve}{C}
+# {Public Domain}
+# {Unknown}
+# {Isaiah 9:6}
+# {\NotCCLIed}
+#
+# % Copyright verified by: Christopher Rath
+# % Words verified by: Christopher Rath
+# % Chords verified by: Priscilla Gruver
+# \renewcommand{\RevDate}{February~11,~1993}
+# \SBRef{Hosanna! Music Book~I}{\#93}
+#
+# \Ch{C}{What} a mighty God we serve,
+#
+# What a mighty God we \Ch{G7}{serve},
+#
+# will result in:
+#
+# \STitle{What A Mighty God We Serve}{D}
+#
+# \Ch{D}{What} a mighty God we serve,
+#
+# What a mighty God we \Ch{A7}{serve},
+#
+# being emitted by modulate.
+###
+
+###
+# Specify constants and variables.
+#
+local($keyStr,
+ $oldKey,
+ $title);
+
+local(%rawKeys) = (
+ '0', 'A',
+ '1', 'Bb',
+ '2', 'B',
+ '3', 'C',
+ '4', 'C#',
+ '5', 'D',
+ '6', 'Eb',
+ '7', 'E',
+ '8', 'F',
+ '9', 'F#',
+ '10', 'G',
+ '11', 'Ab'
+ );
+
+local(%rawNotes) = (
+ 'A', '0',
+ 'A#', '1', 'Bb', '1',
+ 'B', '2', 'Cb', '2',
+ 'B#', '3', 'C', '3',
+ 'C#', '4', 'Db', '4',
+ 'D', '5',
+ 'D#', '6', 'Eb', '6',
+ 'E', '7', 'Fb', '7',
+ 'E#', '8', 'F', '8',
+ 'F#', '9', 'Gb', '9',
+ 'G', '10',
+ 'G#', '11', 'Ab', '11'
+);
+
+###
+# Test chord: A#modifier/Fbtrailer
+sub modChord {
+ local($oldCh, $modVal) = (@_);
+ local($newCh);
+
+ if ($oldCh =~ /^[\{\[\]]/) {
+ $newCh = $oldCh;
+ } elsif ($oldCh =~ m%(^[A-G#b]+)([^/]*)/?([A-G#b]*)(.*)$%) {
+ local($chord, $modifier, $bass, $trailer) = ($1, $2, $3, $4);
+
+ $newCh = modNote($chord, $modVal);
+
+ if (length($modifier)) {
+ $newCh .= $modifier;
+ }
+
+ if (length($bass)) {
+ $newCh .= '/';
+ $newCh .= modNote($bass, $modVal);
+
+ if (length($trailer)) {
+ $newCh .= $trailer;
+ }
+ }
+ } else {
+ $newCh = $oldCh;
+ }
+
+ return $newCh;
+}
+
+
+sub modKey {
+ local($oldKey, $modVal) = (@_);
+ local($newKey) = (0);
+
+ $oldKey =~ s/\$\\sharp\$/\#/g;
+ $oldKey =~ s/\$\\flat\$/b/g;
+
+ $newKey = modChord($oldKey, $modVal);
+
+ $newKey =~ s/\#/\$\\sharp\$/g;
+ $newKey =~ s/b/\$\\flat\$/g;
+
+ return($newKey);
+}
+
+
+sub modNote {
+ local($oldNote, $modVal) = (@_);
+ local($newNote) = (0);
+
+ $newNote = $rawKeys{($rawNotes{$oldNote} + $modVal)%12};
+
+ return($newNote);
+}
+
+
+###
+# setKeyArray() - Patch %rawKeys for the key we're working in.
+#
+sub setKeyArray {
+ local($newKey) = (@_);
+
+ if ($newKey =~ /^E/) {
+ $rawKeys{'6'} = 'D#';
+ $rawKeys{'11'} = 'G#';
+ }
+}
+
+
+###
+# Get command line parameters.
+#
+if ($#ARGV < 0) {
+ $semitones = 2;
+# die "USAGE: modulate [+-]<semitones> [inputFile]\n";
+} else {
+ $semitones = $ARGV[0];
+ shift;
+}
+
+if (@ARGV) {
+ $inFile = $ARGV[0];
+} else {
+ $inFile = '-';
+}
+
+open(INFILE, $inFile) || die "Couldn't open input file; aborting.\n";
+
+
+###
+# Skip up to the \song macro; then scan the macro and figure out what key the
+# song is in. Then skip ahead to the first line containing a \Ch macro.
+#
+while (<INFILE>)
+{
+ if (/\\begin\{song\}\{([^\}]*)\}\{([^\}]*)\}/) {
+
+ $title = $1;
+ $oldKey = $2;
+ $keyStr = modKey($2, $semitones);
+
+ print '\\STitle{'."$title".'}{'."$keyStr".'}'."\n";
+ print "\n";
+
+ setKeyArray($keyStr);
+
+ last;
+ }
+}
+
+if (eof()) {
+ print "$0: ERROR: couldn't find `\\begin{song}{}{}' block, aborting.";
+} else {
+ local($chord,
+ $prefix,
+ $suffix);
+
+ while (<INFILE>) {
+ if (/^\s+\{/
+ || /^\s+%/
+ || /^\s+\\renewcommand/
+ || /^\s+\\FLineIdx/
+ || /^\s+\\SBRef/
+ || /^\s+$/) {
+ next;
+ } else {
+ chop;
+ last;
+ }
+ }
+
+ ###
+ # Split the line into 3 pieces: a prefix, the chord itself (i.e., the first
+ # parameter to the \Ch command) and a suffix. We then modulate the chord
+ # itself, output the prefix followed by the chord; then we reset $_ to the
+ # suffix and re-check it for more \Ch macros. When we've run out of \Ch
+ # macros, get the next line of the file.
+ #
+ # Test line: \Ch{C}{What} a mighty God we \Ch{C}{serve!}\Ch{[}{}\Ch{F}{} \Ch{C}{}\Ch{]}{}
+ while (1) {
+ if (/\\end\{song\}/) {
+ last;
+ } elsif (/(\\Ch[rX]*\{)([^\}]*)/) {
+ $prefix = $`.$1;
+ $chord = $2;
+ $suffix = $';
+
+ $chord = modChord($chord, $semitones);
+
+ printf("%s%s", $prefix, $chord);
+
+ $_ = $suffix;
+ } else {
+ printf("%s\n", $_);
+
+ if (eof(INFILE)) {
+ last;
+ } else {
+ $_ = <INFILE>;
+ chop;
+ }
+ }
+ }
+}
+
diff --git a/Master/texmf-dist/doc/latex/songbook/contrib/texchord.sty b/Master/texmf-dist/doc/latex/songbook/contrib/texchord.sty new file mode 100644 index 00000000000..2c4ad629bcc --- /dev/null +++ b/Master/texmf-dist/doc/latex/songbook/contrib/texchord.sty @@ -0,0 +1,467 @@ +%%% +%%% TeXChord. Macros for typesetting guitar-chord diagrams. +%%% Version 0.8. +%%% +%%% (C) Copyright 1993 by Joel M. Hoffman <72700.402@compuserve.com> +%%% +%%% +%%% Unlimited non-comercial use is hereby granted. Any comercial use +%%% requires permission from the author. For information on how +%%% to contact the author, see below. +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% +%%% This package defines macros for producing guitar-chord diagrams +%%% with TeX. In general, the command to produce a chord pattern +%%% consists of three parts: the chord name, modifiers, and the +%%% string ``chord.'' Upper-case letters are used for Major and +%%% lower-case letter for minor. Possible modifiers are ``s'' for +%%% ``seven,'' ``sh'' for ``sharp,'' ``f'' for ``flat'' and ``S'' +%%% for ``major seven.'' When they are mixed, the incidentals +%%% (sharp, flat) preceed the others. +%%% +%%% So, for example, \Cchord is a simple C-major chord; \cshchord is +%%% a c-sharp-minor chord; \DshSchord is a D-sharp-major-seven chord. +%%% As of version 0.8, I have not entered all of the possible chord +%%% patterns. See the end of this file for examples of how to add +%%% chords of your own. +%%% +%%% I have included the chord patterns I usually use; your +%%% choices for some obscure chords may vary. Again, you can add +%%% your own chords by copying the examples at the end of this file. +%%% +%%% I have included both sharps and flats for every chord, even +%%% though some are seldom used (C-flat comes to mind). As of +%%% version 0.8, many chords are still missing. Sorry. +%%% +%%% In addition to the chord macros themselves, the following +%%% ``control'' commands are provided: +%%% +%%% \bigchords Use big chord patterns. +%%% \smallchords Use small chord patterns. +%%% \raisedchords Place chords over text at current location. +%%% \textchords Place chords in current text. +%%% +%%% For example, if you wanted to discuss chords, you might say: +%%% +%%% \smallchords\textchords This is how a C-chord is played: \Cchord. +%%% +%%% On the other hand, in music, you might use: +%%% +%%% \bigchords\raisedchords \Dchord This is played with a D-chord. +%%% +%%% \bigchords\raisedchords is the default. +%%% +%%% I don't know how reliable the \raisedchords is. You may have +%%% to tweek the definition of \raisedchords at the end of this +%%% file if you are not using 10pt text. +%%% +%%% Other dimentions you can freely change are \chordheight and +%%% \chordwidth. Be sure to do so both in the initialization and +%%% in the definitions of \bigchords and \smallchords. Also +%%% change \extchordheight to match \chordheight. Feel free to +%%% change the fonts, too. +%%% +%%% +%%% --> I would like to thank Merri Lovinger Arian, a long time friend +%%% --> and my guitar teacher, without whom I would never have learned +%%% --> the joy of guitar. +%%% +%%% +%%% +%%% By version 1.0, this package will also have better provisions +%%% for bar-chords; provisions for optionally printing the name of +%%% the chord to the left of (instead of above) the diagram; +%%% provisions for printing fret-numbers to the left of the +%%% diagrams, instead of the hideously ugly extended patterns; +%%% provisions for printing little x's and o's atop the chord +%%% patterns to indicate which strings are sounded. Also, the +%%% code will be cleaned up and commented. +%%% +%%% Other bugs include numerous spacing problems, most notably in +%%% f-minor chords. +%%% +%%% +%%% If you have suggestions, or bug-fixes, please let me know +%%% +%%% +%%% You can reach me, the author of this package at: +%%% +%%% Internet: Joel@wam.umd.edu -or- 72700.402@compuserve.com +%%% Compuserve: 72700,402 +%%% USPSnet: Joel Hoffman +%%% 1703 Mt. Pisgah Le. #23 +%%% Silver Spring, MD 20903 +%%% USA +%%% +%%% Smile and be happy. Like this: o o +%%% > +%%% \__/ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\newdimen\chordwidth\chordwidth=.28in +\newdimen\chordheight\chordheight=.3in +\newdimen\extchordheight\extchordheight=.525in % 7/4 of \chordheight +\newdimen\chordlinewidth\chordlinewidth=.3pt +\newdimen\chordbaselinewidth\chordbaselinewidth=1pt +\newdimen\chordraise\chordraise=2pt +\font\chordmarkfont=cmsy8\def\chordchar{\char15} +\font\chordnamefont=cmr12 +\font\chordnamesfont=cmr8 +\font\chordsymfont=cmmi8 + +\newdimen\chordi\newdimen\chordj\newdimen\chordk +\newcount\chordl + +\def\bigchords{\chordwidth=.28in\chordheight=.3in\extchordheight=.525in\chordlinewidth=.3pt\chordbaselinewidth=1pt\font\chordmarkfont=cmsy8\def\chordchar{\char15}\font\chordnamefont=cmr12\font\chordnamesfont=cmr8\font\chordsymfont=cmmi8\chordraise=3pt} + +%\def\smallchords{\chordwidth=.14in\chordheight=.15in\extchordheight=.2625in\chordlinewidth=.15pt\chordbaselinewidth=.5pt\font\chordmarkfont=cmsy5\font\chordnamefont=cmr6\chordraise=1.5pt} +\def\smallchords{\chordwidth=.14in\chordheight=.15in\extchordheight=.2625in\chordlinewidth=.15pt\chordbaselinewidth=.5pt\font\chordmarkfont=cmr12 scaled \magstep1\def\chordchar{.}\font\chordnamefont=cmr6\font\chordnamesfont=cmr5\font\chordsymfont=cmmi5\chordraise=1.5pt} + +\bigchords + +\def\vchordrule{{\vrule height \chordheight width \chordlinewidth depth 0pt}} +\def\extvchordrule{{\vrule height \extchordheight width \chordlinewidth depth 0pt}} +\def\hchordrule{{\hrule height \chordlinewidth width \chordwidth depth 0pt}} +\def\basechordrule{{\hrule height \chordbaselinewidth width \chordwidth + depth 0pt}} +\def\chordmark{{\chordmarkfont\chordchar}} + + + + +\def\finger#1#2{%string, fret + \chordi=\chordwidth% + \divide\chordi by 5% + \chordl=#1\advance\chordl by 0% + \multiply\chordi by \chordl% + \chordj=\chordheight% + \divide\chordj by 4% + \chordk=.5\chordj% + \divide\chordk by 2% + \chordl=#2\advance\chordl by 1% + \multiply\chordj by \chordl% + \advance\chordj by \chordk% + \setbox0\hbox{\chordmark}% + \chordk=\wd0% + \multiply\chordk by 10% + \divide\chordk by 21 %=2.1. 2 doesn't seem to work. Hmmm.% + \advance \chordi by -\chordk% + \chordk=\ht0% + \divide\chordk by 2% + \advance\chordj by -\chordk% +% \vskip\chordj\hbox{}\hskip\chordi\chordmark +% \hskip-\wd0\hskip-\chordi\vskip-\ht0\vskip-\chordj} + \lower\chordj\hbox{\hskip\chordi\chordmark}% + \hskip-\wd0\hskip-\chordi} + + +\def\craise#1#2{#1\raise 1ex\hbox{\chordnamesfont #2}} +\def\minor#1{\craise{#1}{m}} +\def\seven#1{\craise{#1}{7}} +\def\Flat#1{\craise{#1}{{\chordsymfont\char91}}} +\def\Sharp#1{\craise{#1}{{\chordsymfont\char93}}} +\def\Flatm#1{\craise{#1}{{\chordsymfont\char91}m}} +\def\Sharpm#1{\craise{#1}{{\chordsymfont\char93}m}} +\def\minors#1{\craise{#1}{m7}} +\def\Sharps#1{\craise{#1}{{\chordsymfont\char93}7}} +\def\Flats#1{\craise{#1}{{\chordsymfont\char91}7}} +\def\Flatms#1{\craise{#1}{{\chordsymfont\char91}m7}} +\def\Sharpms#1{\craise{#1}{{\chordsymfont\char93}m7}} + +\def\chord#1{\hbox to 0pt{\smash{\offinterlineskip +\raise\chordraise\hbox to 0pt{\hbox to \chordwidth{\chordnamefont\hss #1 \hss}\hss}% +\vbox to 0pt{\hbox to 0pt{\hbox to \chordwidth{\vchordrule \hfil \vchordrule \hfil \vchordrule \hfil \vchordrule \hfil \vchordrule \hfil \vchordrule}\hss}\vss}\vbox to 0pt{\vbox to \chordheight{\basechordrule\vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule}\vss}}\hss}} +\def\emptychord{\chord{}} + +\def\extchord#1{\hbox to 0pt{\smash{\offinterlineskip +\raise\chordraise\hbox to 0pt{\hbox to \chordwidth{\chordnamefont\hss #1 \hss}\hss}% +\vbox to 0pt{\hbox to 0pt{\hbox to \chordwidth{\extvchordrule \hfil \extvchordrule \hfil \extvchordrule \hfil \extvchordrule \hfil \extvchordrule \hfil \extvchordrule}\hss}\vss}\vbox to 0pt{\vbox to \extchordheight{\basechordrule\vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule}\vss}}\hss}} + +% Definition added by Christopher Rath (crath@cyberus.ca). This macro left justifies +% the chord-name instead of pseudo centering it. +\def\lextchord#1{\hbox to 0pt{\smash{\offinterlineskip +\raise\chordraise\hbox to 0pt{\hbox to \chordwidth{\chordnamefont #1}}% +\vbox to 0pt{\hbox to 0pt{\hbox to \chordwidth{\extvchordrule \hfil \extvchordrule \hfil \extvchordrule \hfil \extvchordrule \hfil \extvchordrule \hfil \extvchordrule}\hss}\vss}\vbox to 0pt{\vbox to \extchordheight{\basechordrule\vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule}\vss}}\hss}} + +% Definition added by Christopher Rath (crath@cyberus.ca). This macro prints a normal +% chord picture, except that the top fret-mark is not heavy-weight and it picture +% prints the top fret-number beside the top fret-mark (this allows chords to be shown +% that are played ``up the neck''. +\def\upchord#1#2{\hbox to 0pt{\smash{\offinterlineskip +\raise\chordraise\hbox to 0pt{\hbox to \chordwidth{\chordnamefont\hss #1 \hss}\hss}% +\vbox to 0pt{\hbox to 0pt{\hbox to \chordwidth{\vchordrule \hfil \vchordrule \hfil \vchordrule \hfil \vchordrule \hfil \vchordrule \hfil \vchordrule}\hss}\vss}% +\vbox to 0pt{\vskip1pt\hbox to 0pt{\hskip\chordwidth\hbox{\chordnamesfont ~#2}\hss}\vss}% +\vbox to 0pt{\vbox to \chordheight{\vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule}\vss}}\hss}} + +% Definition added by Christopher Rath (crath@cyberus.ca). The same function as +% \upchord, except this is for the \extchord. +\def\upextchord#1#2{\hbox to 0pt{\smash{\offinterlineskip +\raise\chordraise\hbox to 0pt{\hbox to \chordwidth{\chordnamefont\hss #1 \hss}\hss}% +\vbox to 0pt{\hbox to 0pt{\hbox to \chordwidth{\extvchordrule \hfil \extvchordrule \hfil \extvchordrule \hfil \extvchordrule \hfil \extvchordrule \hfil \extvchordrule}\hss}\vss}% +\vbox to 0pt{\vskip1pt\hbox to 0pt{\hskip\chordwidth\hbox{\chordnamesfont ~#2}\hss}\vss}% +\vbox to 0pt{\vbox to \extchordheight{\vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule \vfil \hchordrule}\vss}}\hss}} + +\def\anychord#1{\dochord{\offinterlineskip\relax #1}} +\def\anyextchord#1{\doextchord{\offinterlineskip\relax #1}} + +%Ordinary major chords. +\def\Afchord{\anychord{\chord{\Flat{A}}\finger{2}{0}\finger{3}{0}\finger{4}{0}\finger{5}{0}\finger{5}{3}}} +\def\Achord{\anychord{\chord{A}\finger{2}{1}\finger{3}{1}\finger{4}{1}}} +\def\Ashchord{\anychord{\chord{\Sharp{A}}\finger{0}{0}\finger{1}{0}\finger{2}{0}\finger{3}{0}\finger{4}{0}\finger{5}{0}\finger{2}{2}\finger{3}{2}\finger{4}{2}}} +\def\Bfchord{\anychord{\chord{\Flat{B}}\finger{0}{0}\finger{1}{0}\finger{2}{0}\finger{3}{0}\finger{4}{0}\finger{5}{0}\finger{2}{2}\finger{3}{2}\finger{4}{2}}} +\def\Bchord{\anychord{\chord{B}\finger{2}{3}\finger{3}{3}\finger{4}{3}\finger{5}{1}}} +\def\Cfchord{\anychord{\chord{\Flat{C}}\finger{2}{3}\finger{3}{3}\finger{4}{3}\finger{5}{1}}} +\def\Bshchord{\anychord{\chord{\Sharp{B}}\finger{1}{2}\finger{2}{1}\finger{4}{0}}} +\def\Cchord{\anychord{\chord{C}\finger{1}{2}\finger{2}{1}\finger{4}{0}}} +\def\Cshchord{\anychord{\chord{\Sharp{C}}\finger{1}{3}\finger{2}{2}\finger{3}{0}\finger{4}{0}\finger{4}{1}\finger{5}{0}}} +\def\Dfchord{\anychord{\chord{\Flat{D}}\finger{1}{3}\finger{2}{2}\finger{3}{0}\finger{4}{0}\finger{4}{1}\finger{5}{0}}} +\def\Dchord{\anychord{\chord{D}\finger{3}{1}\finger{4}{2}\finger{5}{1}}} +\def\Dshchord{\anychord{\chord{\Sharp{D}}\finger{2}{0}\finger{3}{2}\finger{4}{3}\finger{5}{2}}} +\def\Efchord{\anychord{\chord{\Flat{E}}\finger{2}{0}\finger{3}{2}\finger{4}{3}\finger{5}{2}}} +\def\Echord{\anychord{\chord{E}\finger{1}{1}\finger{2}{1}\finger{3}{0}}} +\def\Ffchord{\anychord{\chord{\Flat{F}}\finger{1}{1}\finger{2}{1}\finger{3}{0}}} +\def\Eshchord{\anychord{\chord{\Sharp{E}}\finger{2}{2}\finger{3}{1}\finger{4}{0}\finger{5}{0}}} +\def\Fchord{\anychord{\chord{F}\finger{2}{2}\finger{3}{1}\finger{4}{0}\finger{5}{0}}} +\def\Fshchord{\anychord{\chord{\Sharp{F}}\finger{2}{3}\finger{3}{2}\finger{4}{1}\finger{5}{1}}} +\def\Gfchord{\anychord{\chord{\Flat{G}}\finger{2}{3}\finger{3}{2}\finger{4}{1}\finger{5}{1}}} +\def\Gchord{\anychord{\chord{G}\finger{0}{2}\finger{1}{1}\finger{5}{2}}} +\def\Gshchord{\anychord{\chord{\Sharp{G}}\finger{2}{0}\finger{3}{0}\finger{4}{0}\finger{5}{0}\finger{5}{3}}} + +%minor chords +\def\afchord{\anyextchord{\extchord{\Flatm{a}}\finger{0}{3}\finger{1}{3}\finger{2}{3}\finger{3}{3}\finger{4}{3}\finger{5}{3}\finger{1}{5}\finger{2}{5}}} +\def\achord{\anychord{\chord{\minor{a}}\finger{2}{1}\finger{3}{1}\finger{4}{0}}} +\def\ashchord{\anychord{\chord{\Sharpm{a}}\finger{0}{0}\finger{1}{0}\finger{2}{0}\finger{3}{0}\finger{4}{0}\finger{5}{0}\finger{2}{2}\finger{3}{2}\finger{4}{1}}} +\def\bfchord{\anychord{\chord{\Flatm{b}}\finger{0}{0}\finger{1}{0}\finger{2}{0}\finger{3}{0}\finger{4}{0}\finger{5}{0}\finger{2}{2}\finger{3}{2}\finger{4}{1}}} +\def\bchord{\anychord{\chord{\minor{b}}\finger{2}{3}\finger{3}{3}\finger{4}{2}\finger{5}{1}}} +\def\cfchord{\anychord{\chord{\Flatm{c}}\finger{2}{3}\finger{3}{3}\finger{4}{2}\finger{5}{1}}} +\def\bshchord{\anyextchord{\extchord{\Sharpm{b}}\finger{2}{4}\finger{3}{4}\finger{4}{3}\finger{5}{2}}} +\def\cchord{\anyextchord{\extchord{\minor{c}}\finger{2}{4}\finger{3}{4}\finger{4}{3}\finger{5}{2}}} +\def\cshchord{\anychord{\chord{\Sharpm{c}}\finger{2}{1}\finger{3}{0}\finger{4}{1}}} +\def\dfchord{\anychord{\chord{\Flatm{d}}\finger{2}{1}\finger{3}{0}\finger{4}{1}}} +\def\dchord{\anychord{\chord{\minor{d}}\finger{3}{1}\finger{4}{2}\finger{5}{0}}} +\def\dshchord{\anychord{\chord{\Sharpm{d}}\finger{2}{3}\finger{3}{2}\finger{4}{3}\finger{5}{1}}} +\def\efchord{\anychord{\chord{\Flatm{e}}\finger{2}{3}\finger{3}{2}\finger{4}{3}\finger{5}{1}}} +\def\echord{\anychord{\chord{\minor{e}}\finger{1}{1}\finger{2}{1}}} +\def\ffchord{\anychord{\chord{\Flatm{f}}\finger{1}{1}\finger{2}{1}}} +\def\eshchord{\anychord{\chord{\Sharpm{e}}\finger{2}{2}\finger{3}{0}\finger{4}{0}\finger{5}{0}}} +\def\fchord{\anychord{\chord{\minor{f}}\finger{2}{2}\finger{3}{0}\finger{4}{0}\finger{5}{0}}} +\def\fshchord{\anychord{\chord{\Sharpm{f}}\finger{0}{1}\finger{1}{1}\finger{2}{1}\finger{3}{1}\finger{4}{1}\finger{5}{1}\finger{1}{3}\finger{2}{3}}} +\def\gfchord{\anychord{\chord{\Flatm{g}}\finger{0}{1}\finger{1}{1}\finger{2}{1}\finger{3}{1}\finger{4}{1}\finger{5}{1}\finger{1}{3}\finger{2}{3}}} +\def\gchord{\anyextchord{\extchord{\minor{g}}\finger{2}{4}\finger{3}{2}\finger{4}{2}\finger{5}{2}}} +\def\gshchord{\anyextchord{\extchord{\Sharpm{g}}\finger{0}{3}\finger{1}{3}\finger{2}{3}\finger{3}{3}\finger{4}{3}\finger{5}{3}\finger{1}{5}\finger{2}{5}}} + +%Seventh chords (majors) +\def\Afschord{\anychord{\chord{\Flats{A}}\finger{1}{2}\finger{2}{3}\finger{3}{0}\finger{4}{3}}} +\def\Aschord{\anychord{\chord{\seven{A}}\finger{2}{1}\finger{4}{1}}} +\def\Ashschord{\anychord{\chord{\Sharps{A}}\finger{0}{0}\finger{1}{0}\finger{2}{0}\finger{3}{0}\finger{4}{0}\finger{5}{0}\finger{2}{2}\finger{4}{2}}} +\def\Bfschord{\anychord{\chord{\Flats{B}}\finger{0}{0}\finger{1}{0}\finger{2}{0}\finger{3}{0}\finger{4}{0}\finger{5}{0}\finger{2}{2}\finger{4}{2}}} +\def\Bschord{\anychord{\chord{\seven{B}}\finger{1}{1}\finger{2}{0}\finger{3}{1}\finger{5}{1}}} +\def\Cfschord{\anychord{\chord{\Flats{C}}\finger{1}{1}\finger{2}{0}\finger{3}{1}\finger{5}{1}}} +\def\Bshschord{\anychord{\chord{\Sharps{B}}\finger{1}{2}\finger{2}{1}\finger{3}{2}\finger{4}{0}}} +\def\Cschord{\anychord{\chord{\seven{C}}\finger{1}{2}\finger{2}{1}\finger{3}{2}\finger{4}{0}}} +\def\Cshschord{\anychord{\chord{\Sharps{C}}\finger{2}{2}\finger{3}{3}\finger{4}{1}\finger{5}{3}}} +\def\Dfschord{\anychord{\chord{\Flats{D}}\finger{2}{2}\finger{3}{3}\finger{4}{1}\finger{5}{3}}} +\def\Dschord{\anychord{\chord{\seven{D}}\finger{3}{1}\finger{4}{0}\finger{5}{1}}} +\def\Dshschord{\anychord{\chord{\Sharps{D}}\finger{2}{0}\finger{3}{2}\finger{4}{1}\finger{5}{2}}} +\def\Efschord{\anychord{\chord{\Flats{E}}\finger{2}{0}\finger{3}{2}\finger{4}{1}\finger{5}{2}}} +\def\Eschord{\anychord{\chord{\seven{E}}\finger{1}{1}\finger{3}{0}}} +\def\Ffschord{\anychord{\chord{\Flats{F}}\finger{1}{1}\finger{3}{0}}} +\def\Eshschord{\anyextchord{\extchord{\Sharps{E}}\finger{2}{2}\finger{3}{4}\finger{4}{5}\finger{5}{4}}} +\def\Fschord{\anyextchord{\extchord{\seven{F}}\finger{2}{2}\finger{3}{4}\finger{4}{5}\finger{5}{4}}} +\def\Fshschord{\anychord{\chord{\Sharps{F}}\finger{2}{3}\finger{3}{2}\finger{4}{1}}} +\def\Gfschord{\anychord{\chord{\Flats{G}}\finger{2}{3}\finger{3}{2}\finger{4}{1}}} +\def\Gschord{\anychord{\chord{\seven{G}}\finger{0}{2}\finger{1}{1}\finger{5}{0}}} +\def\Gshschord{\anychord{\chord{\Sharps{G}}\finger{1}{2}\finger{2}{3}\finger{3}{0}\finger{4}{3}}} + +%seventh chords (minors) + +\def\afschord{\anychord{\chord{\Flatms{a}}\finger{2}{0}\finger{3}{0}\finger{5}{1}}} +\def\aschord{\anychord{\chord{\minors{a}}\finger{2}{1}\finger{4}{0}}} +\def\ashschord{\anychord{\chord{\Sharpms{a}}\finger{2}{2}\finger{3}{2}\finger{4}{1}\finger{5}{3}}} +\def\bfschord{\anychord{\chord{\Flatms{b}}\finger{2}{2}\finger{3}{2}\finger{4}{1}\finger{5}{3}}} +\def\bschord{\anychord{\chord{\minors{b}}\finger{0}{1}\finger{1}{1}\finger{2}{1}\finger{3}{1}\finger{4}{1}\finger{5}{1}\finger{2}{3}\finger{4}{2}}} +\def\cfschord{\anychord{\chord{\Flatms{c}}\finger{0}{1}\finger{1}{1}\finger{2}{1}\finger{3}{1}\finger{4}{1}\finger{5}{1}\finger{2}{3}\finger{4}{2}}} +\def\bshschord{\anychord{\chord{\Sharpms{b}}\finger{2}{0}\finger{3}{2}\finger{4}{0}\finger{5}{2}}} +\def\cschord{\anychord{\chord{\minors{c}}\finger{2}{0}\finger{3}{2}\finger{4}{0}\finger{5}{2}}} +\def\cshschord{\anychord{\chord{\Sharpms{c}}\finger{1}{1}\finger{2}{1}\finger{3}{0}\finger{4}{1}}} +\def\dfschord{\anychord{\chord{\Flatms{d}}\finger{1}{1}\finger{2}{1}\finger{3}{0}\finger{4}{1}}} +\def\dschord{\anychord{\chord{\minors{d}}\finger{3}{1}\finger{4}{0}\finger{5}{0}}} +\def\dshschord{\anychord{\chord{\Sharpms{d}}\finger{2}{0}\finger{3}{2}\finger{4}{1}\finger{5}{1}}} +\def\efschord{\anychord{\chord{\Flatms{e}}\finger{2}{0}\finger{3}{2}\finger{4}{1}\finger{5}{1}}} +\def\eschord{\anychord{\chord{\minors{e}}\finger{1}{1}\finger{2}{1}\finger{4}{2}}} +\def\ffschord{\anychord{\chord{\Flatms{f}}\finger{1}{1}\finger{2}{1}\finger{4}{2}}} +\def\eshschord{\anychord{\chord{\Sharpms{e}}\finger{2}{0}\finger{3}{0}\finger{4}{0}\finger{5}{0}}} +\def\fschord{\anychord{\chord{\minors{f}}\finger{2}{0}\finger{3}{0}\finger{4}{0}\finger{5}{0}}} +\def\fshschord{\anychord{\chord{\Sharpms{f}}\finger{2}{1}\finger{3}{1}\finger{4}{1}\finger{5}{1}}} +\def\gfschord{\anychord{\chord{\Flatms{g}}\finger{2}{1}\finger{3}{1}\finger{4}{1}\finger{5}{1}}} +\def\gschord{\anychord{\chord{\minors{g}}\finger{1}{0}\finger{2}{2}\finger{4}{2}}} +\def\gshschord{\anychord{\chord{\Sharpms{g}}\finger{2}{0}\finger{3}{0}\finger{5}{1}}} + +\def\textchords{\def\dochord##1{\leavevmode\raise\chordheight\hbox{##1}\hskip\chordwidth}} +\def\raisedchords{\def\dochord##1{\leavevmode\raise10pt\hbox{\raise\chordheight\hbox{##1}}}\def\doextchord##1{\leavevmode\raise10pt\hbox{\raise\extchordheight\hbox{##1}}}} +\raisedchords +%% +%% +%% Tue Mar 30 20:40:00 1993 +%% +%% +%% To: Christopher (C.J.) Rath (BNR) Dept 4Y13 CAR +%% +%% From: 'joel@wam.umd.edu' (BNR400) +%% +%% Subject: [ANNOUNCE] Guitar-chord-diagram macros for TeX (and LaTex) +%% +%% Attachment: 1) UNIX File: ORIGINAL.HEADER - 960 bytes +%% +%% There are TWO files here: test.tex, followed by texchord.tex. +%% +%% Look for the two --CUT HERE-- lines below. +%% +%% +%% Save the second file as texchord.tex, the first one as test.tex, and +%% run tex on test.tex. +%% +%% -------------------------------CUT HERE------------------------------- +%% %Test file for TeXChord. (C) 1993 by Joel M. Hoffman +%% +%% \font\titfont=cmr17\narrower % Some fonts +%% \font\capfont=cmbx12 scaled \magstep1 +%% \def\mycaption#1{\bigskip{\capfont #1}\nobreak} +%% \long\def\boxit#1{\vbox{\hrule\hbox{\vrule\kern3pt +%% \vbox{\kern3pt#1\kern3pt}\kern3pt\vrule}\hrule}} +%% \long\def\dboxit#1{\boxit{\vbox{\boxit{\hbox{#1}}}}} +%% +%% +%% +%% \input texchord % Include the macros. +%% \textchords\smallchords % Put chords in the text; use small chords. +%% +%% \centerline{\dboxit{\vbox{\hbox{\titfont \TeX Chord Demonstration} +%% \hbox{Copyright 1993 by Joel M.\ Hoffman}}}} +%% \bigskip +%% \bigskip\hrule\bigskip\bigskip +%% +%% This is the size of a small C-chord: \Cchord. +%% \bigchords +%% This is the size of a big C-chord: \Cchord. +%% +%% \bigskip\hrule\bigskip\bigskip +%% +%% +%% \raisedchords\advance\baselineskip by 50pt +%% \def\dummytext{\leavevmode\kern.6 true in} +%% +%% \bigchords +%% +%% \mycaption{Major chords:} +%% +%% \Achord \dummytext +%% \Bchord \dummytext +%% \Cchord \dummytext +%% \Dchord \dummytext +%% \Echord \dummytext +%% \Fchord \dummytext +%% \Gchord \dummytext +%% +%% \Ashchord \dummytext +%% \Bshchord \dummytext +%% \Cshchord \dummytext +%% \Dshchord \dummytext +%% \Eshchord \dummytext +%% \Fshchord \dummytext +%% \Gshchord \dummytext +%% +%% \Afchord \dummytext +%% \Bfchord \dummytext +%% \Cfchord \dummytext +%% \Dfchord \dummytext +%% \Efchord \dummytext +%% \Ffchord \dummytext +%% \Gfchord \dummytext +%% +%% \mycaption{Minor chords:} +%% +%% \achord \dummytext +%% \bchord \dummytext +%% \cchord \dummytext +%% \dchord \dummytext +%% \echord \dummytext +%% \fchord \dummytext +%% \gchord \dummytext +%% +%% \ashchord \dummytext +%% \bshchord \dummytext +%% \cshchord \dummytext +%% \dshchord \dummytext +%% \eshchord \dummytext +%% \fshchord \dummytext +%% \gshchord \dummytext +%% +%% \afchord \dummytext +%% \bfchord \dummytext +%% \cfchord \dummytext +%% \dfchord \dummytext +%% \efchord \dummytext +%% \ffchord \dummytext +%% \gfchord \dummytext +%% +%% \mycaption{Seventh chords (Major):} +%% +%% \Cschord \dummytext +%% \Dschord \dummytext +%% \Eschord \dummytext +%% \Fschord \dummytext +%% \Gschord \dummytext +%% \Aschord \dummytext +%% \Bschord \dummytext +%% +%% \Cfschord \dummytext +%% \Dfschord \dummytext +%% \Efschord \dummytext +%% \Ffschord \dummytext +%% \Gfschord \dummytext +%% \Afschord \dummytext +%% \Bfschord \dummytext +%% +%% \Cshschord \dummytext +%% \Dshschord \dummytext +%% \Eshschord \dummytext +%% \Fshschord \dummytext +%% \Gshschord \dummytext +%% \Ashschord \dummytext +%% \Bshschord \dummytext +%% +%% \mycaption{Seventh chords (Minor):} +%% +%% +%% \aschord \dummytext +%% \bschord \dummytext +%% \cschord \dummytext +%% \dschord \dummytext +%% \eschord \dummytext +%% \fschord \dummytext +%% \gschord \dummytext +%% +%% \afschord \dummytext +%% \bfschord \dummytext +%% \cfschord \dummytext +%% \dfschord \dummytext +%% \efschord \dummytext +%% \ffschord \dummytext +%% \gfschord \dummytext +%% +%% \ashschord \dummytext +%% \bshschord \dummytext +%% \cshschord \dummytext +%% \dshschord \dummytext +%% \eshschord \dummytext +%% \fshschord \dummytext +%% \gshschord \dummytext +%% +%% +%% \end |