2003-07-15 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * input/test/trills.ly (endHorizScript): fixes.
+
+ * input/test/chord-names-jazz.ly: merge in alternate Jazz
+ notation, move from regression.
+
* input/test/script-stack.ly: change name from stacked-scripts
* input/test/ossia.ly: octave errors.
* input/no-notation/midi-tuplets.ly: move from input/test/, idem
for midi-volume-equaliser
- *
-
m2003-07-15 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* scm/output-ps.scm (lily-traced-cm-fonts): substitution for lily
note = {Swedish book on music notation.}
}
+@Book{jaschinski00:_notat,
+ author = {Andreas Jaschinski},
+ title = {Notation},
+ publisher = {Bärenreiter Verlag},
+ year = 2000,
+ number = {BVK1625}
+}
+
@end menu
-@node American Chords
-@section American Chords
-[TODO]
+@node Chord name chart
+@section chord name chart
-@node Jazz chords
-@section Jazz chords
-
-@lilypondfile[notexidoc]{chords-ignatzek.ly}
+@lilypondfile[notexidoc]{chord-names-jazz.ly}
@node MIDI instruments
@section MIDI instruments
@c -*-texinfo-*-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@node Introduction
@chapter Introduction
@end table
+
+There are also two other chord name schemes implemented: an alternate
+Jazz chord notation, and a systematic scheme called Banter chords. The
+alternate jazz notation is also shown on the chart in @ref{Chord name
+chart}. Turning on these styles is described in the input file
+@inputfileref{input/test/,chord-names-jazz.ly}.
+
+@cindex Banter
+@cindex jazz chords
+@cindex chords, jazz
+
+
@refcommands
@refcommand germanChords
@refcommand semiGermanChords
+
+
@seealso
@inputfileref{input/regression,chord-name-major7.ly},
@inputfileref{input/regression,chord-name-exceptions.ly},
+@inputfileref{input/test,chord-names-jazz.ly},
@inputfileref{input/test,chord-names-german.ly},
@file{scm/chords-ignatzek.scm}, @file{scm/chord-entry.scm}
+++ /dev/null
-\version "1.7.23"
-
-
-\header {
-
-texidoc = " Chord names are generated from a list pitches. The
-functions constructing the names are customisable. This file shows
-Jazz chords, following Ignatzek (1995), page 17 and 18."
-
-}
-
-chs = \notes \transpose c' c'
-{
- <<c e g>>1
- <<c es g>>% m = minor triad
- <<c e gis>>
- <<c es ges>> \break
- <<c e g bes>>
- <<c es g bes>>
- <<c e g b>> % triangle = maj
- <<c es ges beses>>
- <<c es ges b>> \break
- <<c e gis bes>>
- <<c es g b>>
- <<c e gis b>>
- <<c es ges bes>>\break
- <<c e g a>> % 6 = major triad with added sixth
- <<c es g a>> % m6 = minor triad with added sixth
- <<c e g bes d'>>
- <<c es g bes d'>> \break
- <<c es g bes d' f' a' >>
- <<c es g bes d' f' >>
- <<c es ges bes d' >>
- <<c e g bes des' >> \break
- <<c e g bes dis'>>
- <<c e g bes d' f'>>
- <<c e g bes d' fis'>>
- <<c e g bes d' f' a'>>\break
- <<c e g bes d' fis' as'>>
- <<c e gis bes dis'>>
- <<c e g bes dis' fis'>>
- <<c e g bes d' f' as'>>\break
- <<c e g bes des' f' as'>>
- <<c e g bes d' fis'>>
- <<c e g b d'>>
- <<c e g bes d' f' as'>>\break
- <<c e g bes des' f' as'>>
- <<c e g bes des' f' a'>>
- <<c e g b d'>>
- <<c e g b d' f' a'>>\break
- <<c e g b d' fis'>>
- <<c e g bes des' f ' a'>>
- <<c f g>>
- <<c f g bes>>\break
- <<c f g bes d'>>
- <<c e g d'>> % add9
- <<c es g f'>>
-}
-
-\score{
- <
- \context ChordNames { \chs }
- \context Staff \notes \transpose c c' { \chs }
- >
- \paper{
- \translator {
- \ChordNamesContext
- ChordName \override #'word-space = #1
- }
- }
-}
-
-\version "1.7.18"
-% FIXME: doesn't display anything useful.
+\version "1.7.23"
+
+
\header {
-texidoc = "Jazz notation for chord names.
-FIXME.
+texidoc = " Chord names are generated from a list pitches. The
+functions constructing the names are customisable. This file shows
+Jazz chords, following Ignatzek (1995), page 17 and 18, Banter chords,
+and an alternative Jazz chord notation.
+
"
}
-\score { \notes { c4^"fixme"}}
-%{
+chs = \notes \transpose c' c'
+{
+ <<c e g>>1
+ <<c es g>>% m = minor triad
+ <<c e gis>>
+ <<c es ges>> \break
+ <<c e g bes>>
+ <<c es g bes>>
+ <<c e g b>> % triangle = maj
+ <<c es ges beses>>
+ <<c es ges b>> \break
+ <<c e gis bes>>
+ <<c es g b>>
+ <<c e gis b>>
+ <<c es ges bes>>\break
+ <<c e g a>> % 6 = major triad with added sixth
+ <<c es g a>> % m6 = minor triad with added sixth
+ <<c e g bes d'>>
+ <<c es g bes d'>> \break
+ <<c es g bes d' f' a' >>
+ <<c es g bes d' f' >>
+ <<c es ges bes d' >>
+ <<c e g bes des' >> \break
+ <<c e g bes dis'>>
+ <<c e g bes d' f'>>
+ <<c e g bes d' fis'>>
+ <<c e g bes d' f' a'>>\break
+ <<c e g bes d' fis' as'>>
+ <<c e gis bes dis'>>
+ <<c e g bes dis' fis'>>
+ <<c e g bes d' f' as'>>\break
+ <<c e g bes des' f' as'>>
+ <<c e g bes d' fis'>>
+ <<c e g b d'>>
+ <<c e g bes d' f' as'>>\break
+ <<c e g bes des' f' as'>>
+ <<c e g bes des' f' a'>>
+ <<c e g b d'>>
+ <<c e g b d' f' a'>>\break
+ <<c e g b d' fis'>>
+ <<c e g bes des' f ' a'>>
+ <<c f g>>
+ <<c f g bes>>\break
+ <<c f g bes d'>>
+ <<c e g d'>> % add9
+ <<c es g f'>>
+}
-%% This should only be necessary if your kpathsea setup is broken
-%
-% Make sure the correct msamxx.tfm is where lily can find it
-% (ie cwd or lily's tfm dir).
-%
-% For normal (20pt) paper, do
-%
-% cp locate `msam9.tfm` LILYPONDPREFIXxtfm
-%
-
-scheme = \chords {
- % major chords
- c
- c:6 % 6 = major triad with added sixth
- c:maj % triangle = maj
- c:6.9^7 % 6/9
- c:9^7 % add9
-
- % minor chords
- c:m % m = minor triad
- c:m.6 % m6 = minor triad with added sixth
- c:m.7+ % m triangle = minor major seventh chord
- c:3-.6.9^7 % m6/9
- c:m.7 % m7
- c:3-.9 % m9
- c:3-.9^7 % madd9
-
- % dominant chords
- c:7 % 7 = dominant
- c:7.5+ % +7 = augmented dominant
- c:7.5- % 7b5 = hard diminished dominant
- c:9 % 7(9)
- c:9- % 7(b9)
- c:9+ % 7(#9)
- c:13^9.11 % 7(13)
- c:13-^9.11 % 7(b13)
- c:13^11 % 7(9,13)
- c:13.9-^11 % 7(b9,13)
- c:13.9+^11 % 7(#9,13)
- c:13-^11 % 7(9,b13)
- c:13-.9-^11 % 7(b9,b13)
- c:13-.9+^11 % 7(#9,b13)
-
- % half diminished chords
- c:m5-.7 % slashed o = m7b5
- c:9.3-.5- % o/7(pure 9)
-
- % diminished chords
- c:m5-.7- % o = diminished seventh chord
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alternate Jazz notation
+
+efullmusicJazzAlt = \notes
+{
+ <<c e gis>>1-\markup { "+" }
+ <<c e g b>>-\markup { \normal-size-super
+ % \override #'(font-family . math) "N" }
+ \override #'(font-family . math) "M" }
+ %%c:3.5.7 = \markup { \override #'(font-family . math) "M" }
+ %%c:3.5.7 = \markup { \normal-size-super "maj7" }
+
+ <<c es ges>>-\markup { \super "o" } % should be $\circ$ ?
+ <<c es ges bes>>-\markup { \super \combine "o" "/" }
+ <<c es ges beses>>-\markup { \super "o7" }
}
-\score {
- \notes <
- \context ChordNames {
- #(set-chord-name-style 'jazz)
- \scheme }
- \context Staff \transpose c c' \scheme
- >
+efullJazzAlt = #(sequential-music-to-chord-exceptions efullmusicJazzAlt #f)
+
+epartialmusicJazzAlt = \notes{
+ <<c d>>1-\markup { \normal-size-super "2" }
+ <<c es>>-\markup { "m" }
+ <<c f>>-\markup { \normal-size-super "sus4" }
+ <<c g>>-\markup { \normal-size-super "5" }
+
+ %% TODO, partial exceptions
+ <<c es f>>-\markup { "m" }-\markup { \normal-size-super "sus4" }
+ <<c d es>>-\markup { "m" }-\markup { \normal-size-super "sus2" }
}
+epartialJazzAlt = #(sequential-music-to-chord-exceptions epartialmusicJazzAlt #f)
+
+jazzAltProperties =
+
+\sequential {
+ \property ChordNames.majorSevenSymbol = #whiteTriangleMarkup
+ \property ChordNames.chordNameSeparator = #(make-simple-markup "/")
+ \property ChordNames.chordNameExceptionsFull = #efullJazzAlt
+ \property ChordNames.chordNameExceptionsPartial = #epartialJazzAlt
+ \property ChordNames.chordNameFunction = #jazz-chord-names
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+banterProperties = \sequential {
+ \property ChordNames.chordNameFunction = #banter-chord-names
+}
+
+\score{
+ <
+ \context ChordNames {
+ \property ChordNames.instrument = #"Ignatzek (default)"
+ \property ChordNames.instr = #"Def"
+ \chs }
+ \context ChordNames = ALT {
+ \property ChordNames.instrument = #"Alternative"
+ \property ChordNames.instr = #"Alt"
+ \jazzAltProperties
+ \chs }
+
+ % This is the banter style.
+ % it gives exceedingly verbose (wide) names
+ % making this file take up to 4 pages.
+
+%{
+ \context ChordNames = BANTER {
+ \banterProperties
+ \chs
+ }
%}
+ \context Staff \notes \transpose c c' { \chs }
+ >
+ \paper{
+ indent = 3.\cm
+ \translator {
+ \ChordNamesContext
+ ChordName \override #'word-space = #1
+ \consists Instrument_name_engraver
+ }
+ }
+}
+
"Cadence"
"autre"
"Double"4 "cadence"4.
- "autre"4 _4.
+%{ "autre"4 _4.
_4 "sans tremblement"2
"sur une tierce"4
"Pinc\\'e"4
"autre"
"autre"
"Double cadence"2.
- }
+%}
+
+ }
\context Lyrics=two \lyrics {
"simple"4
"appuy\'e"4.
- \skip 1*3
+%{ \skip 1*3
\skip 4 \skip 4.
"voix et montant"
\skip 2.
"de suite"1
+%}
}
\context Staff=lower \notes\relative c'' {
% autobeamer has som problems here
d32-[ \repeat unfold 3 { c d } c-]
- d8 ~ d32-[\repeat unfold 3 { d32 } c-]
+ d8 ~ d32-[\repeat unfold 3 { d32 c } c-]
d32 c b c \repeat unfold 4 { d32 c }
b32 c d c \repeat unfold 4 { d32 c }
c32-[-( b a16 b c-)-]
font_coding_scheme "feta braces";
-fet_beginfont("feta-braces", font_count);
+% we set the designsize arbitrarily at 10
+% if the * 10 is left out, pktrace gets confused over the proper magnification,
+% and makes it too large.
+fet_beginfont("feta-braces", font_count * 10);
+
mode_setup;
+
save code;
code := -1;
+++ /dev/null
-%
-% feta-braces0.mf -- 256 smallest braces
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-%
-
-font_count := 0;
-input feta-beugel;
-end.
--- /dev/null
+%
+% feta-braces0.mf -- 256 smallest braces
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+%
+
+font_count := 0;
+input feta-beugel;
+end.
+++ /dev/null
-%
-% feta-braces1.mf -- next 256 braces
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-%
-
-font_count := 1;
-input feta-beugel;
-end.
--- /dev/null
+%
+% feta-braces1.mf -- next 256 braces
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+%
+
+font_count := 1;
+input feta-beugel;
+end.
+++ /dev/null
-%
-% feta-braces2.mf -- next 256 braces
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-%
-
-font_count := 2;
-input feta-beugel;
-end.
--- /dev/null
+%
+% feta-braces2.mf -- next 256 braces
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+%
+
+font_count := 2;
+input feta-beugel;
+end.
+++ /dev/null
-%
-% feta-braces3.mf -- next 256 braces
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-%
-
-font_count := 3;
-input feta-beugel;
-end.
--- /dev/null
+%
+% feta-braces3.mf -- next 256 braces
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+%
+
+font_count := 3;
+input feta-beugel;
+end.
+++ /dev/null
-%
-% feta-braces4.mf -- next 256 braces
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-%
-
-font_count := 4;
-input feta-beugel;
-end.
-
-
--- /dev/null
+%
+% feta-braces4.mf -- next 256 braces
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+%
+
+font_count := 4;
+input feta-beugel;
+end.
+
+
+++ /dev/null
-%
-% feta-braces5.mf -- next 256 braces
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-%
-
-font_count := 5;
-input feta-beugel;
-end.
--- /dev/null
+%
+% feta-braces5.mf -- next 256 braces
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+%
+
+font_count := 5;
+input feta-beugel;
+end.
+++ /dev/null
-%
-% feta-braces6.mf -- next 256 braces
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-%
-
-font_count := 6;
-input feta-beugel;
-end.
--- /dev/null
+%
+% feta-braces6.mf -- next 256 braces
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+%
+
+font_count := 6;
+input feta-beugel;
+end.
+++ /dev/null
-%
-% feta-braces6.mf -- next 256 braces
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-%
-
-font_count := 7;
-input feta-beugel;
-end.
--- /dev/null
+%
+% feta-braces6.mf -- next 256 braces
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+%
+
+font_count := 7;
+input feta-beugel;
+end.
+++ /dev/null
-%
-% feta-braces6.mf -- next 256 braces
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-%
-
-font_count := 8;
-input feta-beugel;
-end.
--- /dev/null
+%
+% feta-braces6.mf -- next 256 braces
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+%
+
+font_count := 8;
+input feta-beugel;
+end.
-;;;; double-plus-new-chord-name.scm -- Compile chord names
+;;;; chord-generic-names.scm -- Compile chord names
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
(define size-independent-fonts
`(
- ((* * * braces *) . ("feta-braces0"
- "feta-braces1"
- "feta-braces2"
- "feta-braces3"
- "feta-braces4"
- "feta-braces5"
- "feta-braces6"
- "feta-braces7"
- "feta-braces8") )))
+ ((* * * braces *) . ("feta-braces00"
+ "feta-braces10"
+ "feta-braces20"
+ "feta-braces30"
+ "feta-braces40"
+ "feta-braces50"
+ "feta-braces60"
+ "feta-braces70"
+ "feta-braces80") )))
;; FIXME: what about this comment?:
((-3 medium italic roman 7) . "cmti7")
;;; cmbx17 is sauter, not commonly available as Type1.
- ((4 bold upright roman 17) . "cmr17")
- ((3 bold upright roman 17) . "cmr17")
+ ((4 bold upright roman 17) . "cmbx17")
+ ((3 bold upright roman 17) . "cmbx17")
((2 bold upright roman 14) . "cmbx14")
((1 bold upright roman 12) . "cmbx12")
(display (filter-field 'font-name 'cmbx paper20-style-sheet-alist))
(display (qualifiers-to-fontname '((font-name . cmbx)) paper20-style-sheet-alist))
- (display (style-to-font-name 'paper20 'large))
- )
- )
- )
-
-
-)
+ (display (style-to-font-name 'paper20 'large)))
+ )))
;;; ascii-script font init
(define as-font-sheet-alist