lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Chord spacing issues in 2.11 series


From: Shamus
Subject: Re: Chord spacing issues in 2.11 series
Date: Mon, 04 Aug 2008 19:49:24 -0500
User-agent: Thunderbird 2.0.0.14 (X11/20080706)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Joe Neeman wrote:
| Try overriding the extra-spacing-width property on the ChordName grob
| (the extra-spacing-width property is part of the item-interface, which
| is supported by ChordName).
|
| You could also try overriding the padding property of the SeparationItem
| grob.
|
| By the way, if you attach a small example that demonstrates the problem,
| it becomes easier to help because I can test to see if my suggestions
| fix the problem.
|
| Joe

Here you go. Look at measures 1-2. The example is contrived, but I've
had situations similar to this arise quite often. The chords are too
close together for comfortable reading, especially for nearly geriatric
musicians like myself. Any help would be appreciated.

Warmest regards,
- -- Shamus

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIl6OUmE5b/O3JjkYRAg+XAKCQpRCSFoyvp66diqsRXBsCiLIuyACgwrd4
lm3LS4DsqqUOqiVZRRf+pDQ=
=VspW
-----END PGP SIGNATURE-----
% Pop chords as used in English/American popular music
% by James L. Hammons

% Written against \version "2.8.2"

chordFlat = \markup { \hspace #0.2 \tiny \raise #1.0 \flat }
chordSharp = \markup { \hspace #0.1 \teeny \raise #1.0 \sharp }

popChordsMusic =
{
        % Triads

        <c g>-\markup { "5" }
        <c d g>-\markup { "2" }
%       <c d g>-\markup { "sus2" }
        <c f g>-\markup { "sus" }
%       <c f g>-\markup { "sus4" }
%       <c ees ges>-\markup { \small \raise #1.0 "o" }
        <c ees ges>-\markup { \raise #0.8 "o" }
%       <c ees ges>-\markup { "dim" }
%       <c e gis>-\markup { "aug" }                                             
                        % or +

        % Sixths

        <c e g a>-\markup { "6" }
        <c ees g a>-\markup { "m6" }

        % Sevenths (including altered)

        <c e g bes>-\markup { "7" }
        <c ees g bes>-\markup { "m7" }
        <c e g b>-\markup { "maj7" }
        <c f g bes>-\markup { "7sus4" }
        <c d g bes>-\markup { "7sus2" }
        <c e ges bes>-\markup { "7" \chordFlat "5" }
        <c e gis bes>-\markup { "7" \chordSharp "5" }
%       <c e gis bes>-\markup { "aug7" }                                        
                % or +7
        <c ees g b>-\markup { "m(maj7)" }
%       <c ees ges beses>-\markup { \small \raise #1.0 { "o" } "7" }
        <c ees ges beses>-\markup { \raise #0.8 { "o" } "7" }
%       <c ees ges beses>-\markup { "dim7" }
%       <c ees ges bes>-\markup { \small \raise #1.0 { #(ly:export 
(ly:wide-char->utf-8 #x00f8)) } "7" }
%       <c ees ges bes>-\markup { \raise #0.8 { #(ly:export 
(ly:wide-char->utf-8 #x00f8)) } "7" }
        <c ees ges bes>-\markup { "m7" \chordFlat "5" }
        <c e ges b>-\markup { "maj7" \chordFlat "5" }
        <c e gis b>-\markup { "maj7" \chordSharp "5" }

        % Ninths (including altered--incomplete)

        <c e g bes d'>-\markup { "9" }
        <c ees g bes d'>-\markup { "m9" }
        <c e g b d'>-\markup { "maj9" }
        <c e g d'>-\markup { "add9" }
        <c e g a d'>-\markup { "6/9" }
        <c ees g a d'>-\markup { "m6/9" }
        <c ees g b d'>-\markup { "m(maj9)" }
        <c e g bes des'>-\markup { "7" \chordFlat "9" }
        <c e g bes dis'>-\markup { "7" \chordSharp "9" }
%dim7add9, dim7b9, dim7#9, 9#5, 9b5, maj9#5, maj9b5, 9sus4, 9sus2

        % Elevenths (incomplete)

        <c e g bes d' f'>-\markup { "11" }
        <c ees g bes d' f'>-\markup { "m11" }
        <c e g b d' f'>-\markup { "maj11" }
        <c e g f'>-\markup { "add11" }
        <c ees g f'>-\markup { "m add11" }
        <c ees g bes f'>-\markup { "m7add11" }

        % Thirteenths (incomplete)

        <c e g bes d' a'>-\markup { "13" }
        <c ees g bes d' a'>-\markup { "m13" }
        <c e g b d' a'>-\markup { "maj13" }
        <c e g a'>-\markup { "add13" }

        % Misc add chords

        <c e g bes des' aes'>-\markup { "7" \chordFlat "9" \chordFlat "13" }
        <c e gis bes des'>-\markup { "7" \chordSharp "5" \chordFlat "9" }
        <c e g b d' fis'>-\markup { "maj9" \chordSharp "11" }
        <c e g bes d' fis'>-\markup { "9" \chordSharp "11" }
}

% Add to existing exceptions
popChordsAdd = #(append
         (sequential-music-to-chord-exceptions popChordsMusic #t)
         ignatzekExceptions)

% Bah, can't we set this globally?
% \set chordNameExceptions = #popChords

% Bah, this doesn't work either...
% #(set chordNameExceptions popChords)


% Let's try fixing the accidentals with some Scheme...

#(define (chord-name->pop-markup pitch)

  (let* ((alt (ly:pitch-alteration pitch)))

  (make-line-markup
    (list
      (make-simple-markup (vector-ref #("C" "D" "E" "F" "G" "A" "B") 
(ly:pitch-notename pitch)))

      ;; If it's natural, do nothing

      (if (= alt 0)

        (make-line-markup (list empty-markup))

        (if (= alt FLAT)

          ;; Otherwise, handle adding the flat symbol

          (make-line-markup
            (list
              (make-hspace-markup 0.3) ;; WAS: 0.4
              (make-tiny-markup (make-raise-markup 1.0
                (make-musicglyph-markup (string-append "accidentals." 
(number->string alt)))))
            )
          )

          ;; or handle adding the sharp symbol

          (make-line-markup
            (list
              (make-hspace-markup 0.1) ;; WAS: 0.2
              (make-teeny-markup (make-raise-markup 1.0
                (make-musicglyph-markup (string-append "accidentals." 
(number->string alt)))))
            )
          )

        )

      )

    )
  )

  )
)


popChords =
{
  \set chordNameExceptions = #popChordsAdd
  \set chordRootNamer = #chord-name->pop-markup
}
\version "2.11.52"
\include "pop-chords.ly"
\include "english.ly"

% Good sizes are 16, 18, & 20
staffSize = #18
#(set-default-paper-size "letter")
#(set-global-staff-size staffSize)
#(ly:set-option (quote no-point-and-click))

%
% Lead vocal
%

LeadVox = \relative c''
{
%       \set Voice.autoBeaming = ##f
%       \set Staff.instrument = #"Lead vox"
        \clef G
        \key g \major
        \override Staff.TimeSignature #'style = #'()
        \time 4/4
\override Score.SpacingSpanner #'average-spacing-wishes = ##f

        % Intro

        s1 | % 1
        s1 | % 2
        s1 | % 3
        s1 | % 4
        s1 | % 5
        r2 r4 g8 fs | % 6

        s1 | % 1
        s1 | % 2
        s1 | % 3
        s1 | % 4
        s1 | % 5
        r2 r4 g8 fs | % 6
}


%
% Chord names
%

Chords = \chordmode
{
%Bah, can't we set this globally?
        \popChords

        % Intro

        a4:maj7/bf cs:sus4/e bf fs:maj7.5-/af | % 1
        c2/g g | % 2
        d2/fs e:m | % 3
        a2:m g/b | % 4
        d2 e | % 5
        g1 | % 6

        a4:maj7/bf cs:sus4/e bf fs:maj7.5+/af | % 1
        c2/g g | % 2
        d2/fs e:m | % 3
        a2:m g/b | % 4
        d2 e | % 5
        g1 | % 6
}


%
% Chord rhythms
%

% Use a RhythmicStaff on the chords instead of this?
% It almost works, but not quite. Doesn't collapse chords above to single 
notes...

StaffC = \relative c
{
%       \set Voice.autoBeaming = ##f
%       \set Staff.instrument = #"Rhythm"
        \override Staff.TimeSignature #'style = #'()
        \time 4/4
        \override NoteHead #'style = #'slash

        % Intro

        c4 c c c | % 1
        c4 c c c | % 2
        c4 c c c | % 3
        c4 c c c | % 4
        c4 c c c | % 5
        c4 c c c | % 6

        c4 c c c | % 1
        c4 c c c | % 2
        c4 c c c | % 3
        c4 c c c | % 4
        c4 c c c | % 5
        c4 c c c | % 6
}


\score
{
        <<
                <<
                        \new Staff = leadStaff { \new Voice = "lead" \LeadVox }
                >>

                \new ChoirStaff = "Rhythm"
                <<
                        \new ChordNames = "chords" \Chords
                        \new RhythmicStaff = "chordRhythm" \StaffC
                >>

                \set Score.skipBars = ##t
                \set Score.melismaBusyProperties = #'()
        >>
}


\paper
{
  #(define fonts (make-pango-font-tree
    "Times New Roman"
    "DomCasual BT"
    "Luxi Mono"
    (/ staffSize 20)))

%  top-margin = -0.25 \in
}

reply via email to

[Prev in Thread] Current Thread [Next in Thread]