lilypond-user
[Top][All Lists]
Advanced

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

Re: constructing a jazz piece


From: Shamus
Subject: Re: constructing a jazz piece
Date: Wed, 09 Apr 2008 21:47:50 -0500
User-agent: Thunderbird 2.0.0.9 (X11/20080224)

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

Shamus wrote:
| Thanks for that David. I've been doing this to separate out dynamic
| markings, but I didn't know you could do the same with voltas and the
like.
|
| /me goes off to try it

Wow! Works like a charm! This is not only going to save me lots of time,
but what's left of my sanity. :-) Attached is the final result. Thanks
again, David!

- -- Shamus

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

iD8DBQFH/X/VmE5b/O3JjkYRAt5LAJ93hCBNKKTll+ZlHUY9fHIzKSzRrQCfZzal
ZPPvLxmqZsXDepMMHvrd6GU=
=eFjJ
-----END PGP SIGNATURE-----
\version "2.10.29"
\include "pop-chords.ly"
\include "english.ly"

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

%{ Some useful characters: ‘ ’ “ ” – — † ‡ • … %}

\header
{
%Let's bump up the title size and switch to the chord font. :-)

        title    = \markup { \override #'(font-family . sans) \fontsize #3.5 
"As The Deer" }
%       composer = \markup { \override #'(font-family . sans) \fontsize #1.3 "" 
}
        arranger = \markup { \override #'(font-family . sans) \fontsize #1.3 
"arr. Ed Smart" }
        tagline  = #(ly:export (string-append "Engraved by JLH and Lilypond " 
(lilypond-version)))
}


%{
tweak = #(define-music-function (parser location sym val arg)
           (symbol? scheme? ly:music?)

           "Add @code{sym . val} to the @code{tweaks} property of @var{arg}."

           (set!
            (ly:music-property arg 'tweaks)
            (acons sym val
                   (ly:music-property arg 'tweaks)))
           arg)
%}

% Useful tweak abbreviations (hn = harmony note)

hn = #(define-music-function (parser location arg) (ly:music?)
;; Harmony Note: Set the tweaks property of the passed in note to use a smaller 
font

  (set! (ly:music-property arg 'tweaks)
    (acons 'font-size -3.5 (ly:music-property arg 'tweaks))) arg)


%
% Song's structure
%
Global =
{
        \key c \major
        \override Staff.TimeSignature #'style = #'()
        \time 4/4

        % Intro

        \once \override TextScript #'padding = #2.0
        s1*0^\markup { \large { Moderate ballad } }
        s1*4 |   % 1-4

        \repeat volta 2
        {
                % A section

                \mark \markup { \override #'(font-family . sans) { \box { A } } 
}

                s1*7 |   % 5-11
                s1 \bar "||"   % 12

                % B section

                \mark \markup { \override #'(font-family . sans) { \box { B } } 
}

                s1*7 |   % 13-19
        }
        \alternative
        {
                {
                        s1 |   % 20
                }
                {
                        s1 \bar "||"   % 21
                }
        }

        % A section (modulation)

        \key d \major

        \once \override Score.RehearsalMark #'padding = #2.0
        \mark \markup { \override #'(font-family . sans) { \box { C } } }

        s1*8 |   % 22-29

        % B section

        \repeat volta 2
        {
                \mark \markup { \override #'(font-family . sans) { \box { D } } 
}

                s1*7 |   % 30-36
        }
        \alternative
        {
                {
                        s1 |   % 37
                }
                {
                        s1 |   % 38
                }
        }

        % Outro

        s1*5 |   % 39-43
        s1 \bar "|."   % 44
}


%
% Lead vocal
%
LeadVox = \relative c'
{
        \clef G
        \override Score.SpacingSpanner #'average-spacing-wishes = ##f

        s1 |   % 1
        s1 |   % 2
        s1 |   % 3
        s1 |   % 4

        % A section

        e4 g g e8 d |   % 5
        c4. d8 f e d c |   % 6
        a'4 a8 a g4. f8 |   % 7
        g1 |   % 8
        e4 g g e8 d |   % 9
        c4. d8 f ( e ) d c |   % 10
        c4. e8 d4. c8 |   % 11
        c2 ~ c4 r |   % 12

        % B section

        <c' \hn a \hn e>4 <c \hn a \hn e> <c \hn g \hn e> <c \hn g \hn e>8 <b 
\hn g \hn e> |   % 13
        <a \hn f \hn c>4 <a \hn d, \hn b> <g \hn e \hn c>4. <\hn e c>8 |   % 14
        <a \hn f \hn d>4 <a \hn f \hn d> <a \hn f \hn c> <a \hn f \hn c>8 [ <g 
\hn e \hn c> ] |   % 15
        <f \hn d \hn a>4 <f \hn d \hn a>
        << { \voiceOne <e \hn b>2 } \new Voice = "v" { \voiceTwo \override 
NoteHead #'font-size = #-3.5 a,4 ( gs ) \override NoteHead #'font-size = #1.0 } 
>> \oneVoice |   % 16
        e'4 g g e8 d |   % 17
        c4. d8 f ( e ) d c |   % 18
        c4. e8 d4. c8 |   % 19

        c2 r |   % 20

        c2 r |   % 21

        % A section (modulation)

        fs4 a a fs8 e |   % 22
        d4. e8 g fs e d |   % 23
        b'4. b8 a4. g8 |   % 24
        a1 |   % 25
        fs4 a a fs8 e |   % 26
        d4. e8 g fs e d |   % 27
        d4. fs8 e4. d8 |   % 28
        d2 ~ d4 r |   % 29

        % B section

        <d' \hn b \hn fs>4 <d \hn b \hn fs> <d \hn a \hn fs> <d \hn a \hn fs>8 
<cs \hn a \hn fs> |   % 30
        <b \hn g \hn d>4 <b \hn e, \hn cs> <a \hn fs \hn d>4. <\hn fs d>8 |   % 
31
        <b \hn g \hn e>4 <b \hn g \hn e> <b \hn g \hn d> <b \hn g \hn d>8 <a 
\hn fs \hn d> |   % 32
        <g \hn e \hn b>4 <g \hn e \hn b>
        << { \voiceOne <fs \hn cs>2 } \new Voice = "v" { \voiceTwo \override 
NoteHead #'font-size = #-3.5 b,4 ( as ) \override NoteHead #'font-size = #1.0 } 
>> \oneVoice |   % 33
        fs'4 a a fs8 e |   % 34
        d4. e8 g fs e d |   % 35
        d4. fs8 e4. d8 |   % 36

        d1 |   % 37

        d2 ~ d4 fs8 e |   % 38

        % Outro

        d4. fs8 e4. d8 |   % 39
        d2 ~ d4 fs8 e |   % 40
        d4. fs8 e4. d8 |   % 41
        << { \voiceOne d1 } \context Voice = v { \voiceThree s1 } >> \oneVoice 
|   % 42

        s1 |   % 43
        s1 |   % 44
}

LeadVoxText = \lyricmode
{
        As the deer pant -- eth for the wa -- ter
        so my soul long -- eth a -- fter thee,

        You a -- lone are my heart’s de -- sire _
        and I long to wor -- ship thee. _

        You a -- lone are my strength my shield;
        To you a -- lone may my spi -- rit yield.

        You a -- lone are my heart’s de -- sire _
        and I long to wor -- ship thee.

        thee.

        I want you more than gold or sil -- ver,
        on -- ly you can sa -- tis -- fy.

        You a -- lone are the real joy gi -- ver
        and the ap -- ple of my eye. _

        You a -- lone are my strength my shield;
        To you a -- lone may my spi -- rit yield.

        You a -- lone are my heart’s de -- sire _
        and I long to wor -- ship thee.

        thee, _

        and I long to wor -- ship thee, _
        and I long to wor -- ship thee.
}

LeadVoxTextB = \lyricmode
{
        You’re my friend and you are my bro -- ther
        e -- ven though you _ are a king,

        I love you more than a -- ny o -- ther
        so much more than a -- ny -- thing.
}

%
% Riffs
%
Riffs = \relative c'
{
        % Intro

        \tiny
        e4 g g e8 d |   % 1
        c4. d8 f e d c |   % 2
        c4. e8 d4. c8 |   % 3
        c1 |   % 4

        s1*37 |   % 5-41

        << { \voiceOne s1 } \context Voice = v { \voiceThree \tiny fs4 a a fs8 
e \normalsize } >> \oneVoice |   % 42
        d4. e8 g fs e d |   % 43
        d1^\fermata |   % 44
        \normalsize
}


%
% Chord names
%
Chords = \chordmode
{
        \override SeparatingGroupSpanner #'padding = #'2.0

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

        % Intro

        c2 e:m/b |   % 1
        a2:m c/g |   % 2
        d2:m g4:sus4 g |   % 3
        c2 g4/c f/c |   % 4

        % A section

        c2 e:m/b |   % 5
        a2:m c/g |   % 6
        f2 g:sus2/f |   % 7
        c2 g4/c f/c |   % 8
        c2 e:m/b |   % 9
        a2:m c/g |   % 10
        d2:m7 g4:sus4 g |   % 11
        c2. g4/b |   % 12

        % B section

        a2:m a:m7/g |   % 13
        f4 g:sus2/f c2/e |   % 14
        d2:m d:m/c |   % 15
        d2:m/b e4:sus4 e |   % 16
        c2 e:m/b |   % 17
        a2:m c/g |   % 18
        d2:m g4:sus4 g |   % 19

        c2 g4/c f/c |   % 20

        c2 g/a |   % 21

        % A section (modulation)

        d2 fs:m/cs |   % 22
        b2:m d/a |   % 23
        g2 a:sus2/g |   % 24
        d2 a4/d g/d |   % 25
        d2 fs:m/cs |   % 26
        b2:m d/a |   % 27
        e2:m a4:sus4 a |   % 28
        d2. a4/cs |   % 29

        % B section

        b2:m b:m/a |   % 30
        g4 a:sus2/g d2/fs |   % 31
        e2:m e:m/d |   % 32
        e2:m/cs fs4:sus4 fs |   % 33
        d2 fs:m/cs |   % 34
        b2:m d/a |   % 35
        e2:m7 a4:sus4 a |   % 36

        d2. a4/cs |   % 37

        b2:m b:m/a |   % 38

        % Outro

        e2:m7 a4:sus4 a |   % 39
        b2.:m b4:m/a |   % 40
        e2:m7 a4:sus4 a |   % 41
        d2 fs:m/cs |   % 42
        b2:m g:sus2 |   % 43
        d1 |   % 44
}


%
% 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...

Rhythm =
{
        \override Staff.TimeSignature #'style = #'()
        \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

        % A section

        c4 c c c |   % 5
        c4 c c c |   % 6
        c4 c c c |   % 7
        c4 c c c |   % 8
        c4 c c c |   % 9
        c4 c c c |   % 10
        c4 c c c |   % 11
        c4 c c c |   % 12

        % B section

        c4 c c c |   % 13
        c4 c c c |   % 14
        c4 c c c |   % 15
        c4 c c c |   % 16
        c4 c c c |   % 17
        c4 c c c |   % 18
        c4 c c c |   % 19

        c4 c c c |   % 20

        c4 c c c |   % 21

        % A section (modulation)

        c4 c c c |   % 22
        c4 c c c |   % 23
        c4 c c c |   % 24
        c4 c c c |   % 25
        c4 c c c |   % 26
        c4 c c c |   % 27
        c4 c c c |   % 28
        c4 c c c |   % 29

        % B section

        c4 c c c |   % 30
        c4 c c c |   % 31
        c4 c c c |   % 32
        c4 c c c |   % 33
        c4 c c c |   % 34
        c4 c c c |   % 35
        c4 c c c |   % 36

        c4 c c c |   % 37

        c4 c c c |   % 38

        % Outro

        c4 c c c |   % 39
        c4 c c c |   % 40
        c4 c c c |   % 41
        c4 c c c |   % 42
        c4 c c c |   % 43
        c1-\fermata |   % 44
}

Dynamics = \relative c
{
        % Intro

        s1*17 |   % 1-17

        s2 s4_\markup { \italic { rit. } } s |   % 18
        s4_\markup { \italic { A tempo } } s2. |   % 19

        s1*13 |   % 20-32

        s2 s4_\markup { \italic { rit. } } s |   % 33
        s4_\markup { \italic { A tempo } } s2. |   % 34

        s1*6 |   % 35-40

        s2 s4_\markup { \italic { rit. } } s |   % 41

        s1*3 |   % 42-44
}


\score
{
        <<
                \Global                                         % The "roadmap" 
that everything else depends on

                \context Staff
                <<
                        \context Staff << \new Voice = "lead" \LeadVox \new 
Voice \Riffs >>
                        \new Lyrics \lyricsto "lead" \LeadVoxText
                        \new Lyrics \lyricsto "lead" \LeadVoxTextB
                >>

                \new ChoirStaff
                <<
                        \new ChordNames \Chords
                        \new RhythmicStaff << \Rhythm \Dynamics >>
                >>

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

        \layout
        {
%               ragged-last-bottom = ##t
                ragged-last = ##t
        }
}


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

reply via email to

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