I've now got version of the piece with no warnings or errors (attached), and it 
looks perfect.

I had to break some of the parts up so I could handle overlaps between the guitar parts 
and the melody, and while still using the "skip-of-length" constructs as much 
as possible.

I don't know if there is a cleaner way to handle the overlaps, but I'm open to 
suggestions.  Also, is there a way to do math on the skipped lengths?

I could not figure out the scheme syntax for that yet, but if there was a way to say 
something like "#(skip-of-length melody_notes) minus one measure", that would 
be helpful.

        Steve
\version "2.23.9" % absolutely necessary!

\header {
  snippet-title = "Guitar string bending notation"
  snippet-author = "Marc Hohl"
  snippet-source = "http://code.google.com/p/lilypond/issues/detail?id=1196";
  snippet-description = \markup {
    This snippet allows to typeset bend symbols -
    typically used on guitar - on Staff and TabStaff.
    While issue 1196 aims to create a specific engraver
    for bends, this snippet leverages the slur engraver.
  }
  % add comma-separated tags to make searching more effective:
  tags = "guitar, bend, string bending"
  % is this snippet ready?  See meta/status-values.md
  status = "buggy"
}

% TODO:
% - draw dashed line for \holdBend
% - enable consecutive bend ups
% - simplify \preBend and \holdBend usage
% - ...

#(display "\nbend.ly ─ 2011-03-11 (revised: 2013-07-16)\n\n")

%%% sizes and values (to be changed/adapted):

#(define bend-line-thickness 0.1)

#(define bend-arrow-curvature-factor 0.35)

#(define y-distance-from-tabstaff-to-arrow-tip 2.75)

#(define consecutive-bends-arrow-height 2.75)

#(define bend-arrowhead-height 1.25)

#(define bend-arrowhead-width 0.8)

#(define y-distance-from-staffline-to-arrow 0.35)

%%% internal commands
#(define (quarterdiff->string quarterdiff)
   (let ((wholesteps (floor (/ quarterdiff 4))))

     (string-append (case wholesteps
                      ((0) "")
                      (else (number->string wholesteps)))
       (case (modulo quarterdiff 4)
         ((1) "¼")
         ((2) "½")
         ((3) "¾")
         (else "")))))

%%% markup commands

#(define-markup-command (pointedSlur layout props thickness bx by mx my ex ey)
   (number? number? number? number? number? number? number?)
   (interpret-markup layout props
     (markup #:postscript
       (ly:format "~f setlinewidth
                        ~f ~f moveto
                        ~f ~f lineto
                        ~f ~f lineto stroke" thickness bx by mx my ex ey))))

#(define-markup-command (drawBendArrow layout props
                          thickness begin-x middle-x end-x begin-y end-y 
arrow-lx arrow-rx arrow-y outstring)
   (number? number? number? number? number? number? number? number? number? 
string?)
   (interpret-markup layout props
     (markup #:postscript
       (ly:format "~f setlinewidth
                        ~f ~f moveto
                        ~f ~f lineto
                        ~f ~f ~f ~f ~f ~f curveto
                        stroke
                        ~f ~f moveto
                        ~f ~f lineto
                        ~f ~f lineto
                        closepath fill"
thickness
begin-x begin-y
middle-x begin-y
middle-x begin-y end-x begin-y end-x arrow-y
arrow-lx arrow-y
end-x end-y
arrow-rx arrow-y)
       #:hspace 0
       #:translate (cons (- end-x 1.2) (+ end-y 0.5))
       #:fontsize -2
       #:bold
       ;; changed:
       ;#:center-column (outstring)
       outstring
       )))
#(define-markup-command (drawHoldBendWithArrow layout props
                          thickness begin-x begin-y end-x end-y arrow-lx 
arrow-rx arrow-y outstring)
   (number? number? number? number? number? number? number? number? string?)
   (interpret-markup layout props
     (markup #:postscript
       (ly:format "~f setlinewidth
                        ~f ~f moveto
                        ~f ~f lineto
                        stroke
                        ~f ~f moveto
                        ~f ~f lineto
                        ~f ~f lineto
                        closepath fill
                        ~f ~f moveto
                        ~f ~f lineto
                        stroke"
thickness
begin-x begin-y
begin-x arrow-y
arrow-lx arrow-y
begin-x end-y
arrow-rx arrow-y
begin-x end-y
end-x end-y)
       #:hspace 0
       #:translate (cons (- begin-x 1.2) (+ end-y 0.5))
       #:fontsize -2
       ;; Why does it work here??
       #:bold #:center-column (outstring))))

#(define-markup-command (drawHoldBendArrowOnly layout props
                          thickness begin-x begin-y end-x end-y arrow-lx 
arrow-rx arrow-y outstring)
   (number? number? number? number? number? number? number? number? string?)
   (interpret-markup layout props
     (markup #:postscript
       (ly:format "~f setlinewidth
                        ~f ~f moveto
                        ~f ~f lineto
                        stroke
                        ~f ~f moveto
                        ~f ~f lineto
                        ~f ~f lineto
                        closepath fill"
thickness
begin-x begin-y
begin-x arrow-y
arrow-lx arrow-y
begin-x end-y
arrow-rx arrow-y)
       #:hspace 0
       #:translate (cons (- begin-x 1.2) (+ end-y 0.5))
       #:fontsize -2
       ;; Why does it work here??
       #:bold #:center-column (outstring))))

%% The markup-command 'draw-dashed-line' was implemented with version 2.17.x
%% TODO: use 'draw-dashed-line' instead. See also 'tie::draw-hold-bend' below.
#(define-markup-command (drawDashedLine layout props
                          thickness begin-x end-x line-y)
   (number? number? number? number?)
   ;; TODO: draws a full line instead of a dashed line
   (interpret-markup layout props
     (markup #:postscript
       (ly:format "~f setlinewidth
                        ~f ~f moveto
                        ~f ~f lineto
                        stroke"
thickness begin-x line-y end-x line-y))))

%%% callbacks

#(define (slur::draw-pointed-slur grob)
   (let* ((control-points (ly:grob-property grob 'control-points))
          (direction (ly:grob-property grob 'direction))
          (first-point (car control-points))
          (second-point (cadr control-points))
          (third-point (caddr control-points))
          (forth-point (cadddr control-points))
          (first-x (+ (car first-point) 0.125)) ;; due to David's proposals
          (first-y (cdr first-point))
          (second-x (car second-point))
          (second-y (cdr second-point))
          (third-x (car third-point))
          (third-y (cdr third-point))
          (forth-x (- (car forth-point) 0.125))
          (forth-y (cdr forth-point))

          (middle-x (/ (+ third-x second-x) 2))
          (middle-y (/ (+ third-y second-y) 2)))

     (grob-interpret-markup grob
       (make-pointedSlur-markup bend-line-thickness
         first-x first-y middle-x middle-y forth-x forth-y))))

#(define (slur::draw-bend-arrow grob)
   (let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
          (line-count (ly:grob-property staff-symbol 'line-count))
          (staff-space (ly:grob-property staff-symbol 'staff-space))
          (left-bound (ly:spanner-bound grob LEFT))
          (right-bound (ly:spanner-bound grob RIGHT))
          (left-tab-note-head (ly:grob-property left-bound 'cause))
          (right-tab-note-head (ly:grob-property right-bound 'cause))
          (control-points (ly:grob-property grob 'control-points))
          (left-point (car control-points))
          ;;changed: cadddr changed to last
          (right-point (last control-points))
          (left-pitch  (ly:event-property (event-cause left-bound) 'pitch))
          (right-pitch (ly:event-property (event-cause right-bound) 'pitch))
          (quarterdiff (- (ly:pitch-quartertones right-pitch)
                         (ly:pitch-quartertones left-pitch)))
          (begin-x (car left-point))
          (begin-y (+ (* (/ (ly:grob-property left-tab-note-head 
'staff-position) 2)
                        staff-space)
                     y-distance-from-staffline-to-arrow))
          ;; cdr left-point doesn't work, because invisible stems are included
          (end-x (car right-point))
          (end-y (+ (* (/ (- line-count 1) 2) staff-space) 
y-distance-from-tabstaff-to-arrow-tip))
          (arrow-lx (- end-x (/ bend-arrowhead-width 2)))
          (arrow-rx (+ end-x (/ bend-arrowhead-width 2)))
          (arrow-y (- end-y bend-arrowhead-height))
          (middle-x (+ begin-x (* bend-arrow-curvature-factor (- end-x 
begin-x))))
          (bend-amount (quarterdiff->string quarterdiff)))

     (if (< quarterdiff 0)
         ;; bend down
         (let* ((y-offset (cdr (ly:grob-extent left-tab-note-head 
left-tab-note-head Y)))
                (temp begin-y))
           (set! begin-y end-y) ;; swap begin-y/end-y
           (set! end-y (+ temp y-offset))
           (set! arrow-y (+ end-y bend-arrowhead-height))
           (set! bend-amount "")
           (ly:grob-set-property! right-tab-note-head 'display-cautionary #t)
           (ly:grob-set-property! right-tab-note-head 'stencil 
tab-note-head::print))
         ;; bend up
         (let* ((x-offset (/ (cdr (ly:grob-extent left-tab-note-head 
left-tab-note-head X))
                            2)))

           (set! begin-x (+ begin-x x-offset))
           (ly:grob-set-property! right-tab-note-head 'transparent #t)))

     ;; draw resulting bend arrow
     (grob-interpret-markup grob
       (make-drawBendArrow-markup
        bend-line-thickness
        begin-x middle-x end-x begin-y end-y
        arrow-lx arrow-rx arrow-y
        bend-amount))))


#(define (slur::draw-shifted-bend-arrow grob)
   (let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
          (line-count (ly:grob-property staff-symbol 'line-count))
          (staff-space (ly:grob-property staff-symbol 'staff-space))
          (left-bound (ly:spanner-bound grob LEFT))
          (right-bound (ly:spanner-bound grob RIGHT))
          (left-tab-note-head (ly:grob-property left-bound 'cause))
          (right-tab-note-head (ly:grob-property right-bound 'cause))
          (control-points (ly:grob-property grob 'control-points))
          (left-point (car control-points))
          (right-point (cadddr control-points))
          (left-pitch  (ly:event-property (event-cause left-bound) 'pitch))
          (right-pitch (ly:event-property (event-cause right-bound) 'pitch))
          (quarterdiff (- (ly:pitch-quartertones right-pitch)
                         (ly:pitch-quartertones left-pitch)))
          (begin-x (car left-point))
          (begin-y (+ (* (/ (ly:grob-property left-tab-note-head 
'staff-position) 2)
                        staff-space)
                     y-distance-from-tabstaff-to-arrow-tip))
          ;; cdr left-point doesn't work, because invisible stems are included
          (end-x (car right-point))
          (end-y (+ (* (/ (- line-count 1) 2) staff-space) 
y-distance-from-tabstaff-to-arrow-tip consecutive-bends-arrow-height))
          (arrow-lx (- end-x (/ bend-arrowhead-width 2)))
          (arrow-rx (+ end-x (/ bend-arrowhead-width 2)))
          (arrow-y (- end-y bend-arrowhead-height))
          (middle-x (+ begin-x (* bend-arrow-curvature-factor (- end-x 
begin-x))))
          (bend-amount (quarterdiff->string quarterdiff)))
     (if (< quarterdiff 0)
         ;; bend down
         (let* ((y-offset (cdr (ly:grob-extent left-tab-note-head 
left-tab-note-head Y)))
                (temp begin-y))

           (set! begin-y end-y) ;; swap begin-y/end-y
           (set! end-y (+ temp y-offset))
           (set! arrow-y (+ end-y bend-arrowhead-height))
           (set! bend-amount "")
           (ly:grob-set-property! right-tab-note-head 'stencil
             (lambda (grob) (parenthesize-tab-note-head grob))))
         ;; bend up
         (ly:grob-set-property! right-tab-note-head 'transparent #t))
     ;; draw resulting bend arrow
     (grob-interpret-markup grob
       (make-drawBendArrow-markup
        bend-line-thickness
        begin-x middle-x end-x begin-y end-y
        arrow-lx arrow-rx arrow-y
        bend-amount))))

#(define (slur::draw-pre-bend-hold grob)
   (let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
          (line-count (ly:grob-property staff-symbol 'line-count))
          (staff-space (ly:grob-property staff-symbol 'staff-space))
          (left-bound (ly:spanner-bound grob LEFT))
          (right-bound (ly:spanner-bound grob RIGHT))
          (left-tab-note-head (ly:grob-property left-bound 'cause))
          (right-tab-note-head (ly:grob-property right-bound 'cause))
          (control-points (ly:grob-property grob 'control-points))
          (left-point (car control-points))
          (right-point (cadddr control-points))
          (left-pitch  (ly:event-property (event-cause left-bound) 'pitch))
          (right-pitch (ly:event-property (event-cause right-bound) 'pitch))
          (quarterdiff (- (ly:pitch-quartertones right-pitch)
                         (ly:pitch-quartertones left-pitch)))
          (begin-x (car left-point))
          (y-offset (cdr (ly:grob-extent left-tab-note-head left-tab-note-head 
Y)))
          (begin-y (+ (* (/ (ly:grob-property left-tab-note-head 
'staff-position)
                           2)
                        staff-space)
                     y-offset))
          ;; cdr left-point doesn't work, because invisible stems are included
          (end-x (car right-point))
          (end-y (+ (* (/ (- line-count 1) 2) staff-space) 
y-distance-from-tabstaff-to-arrow-tip))
          (arrow-lx (- begin-x (/ bend-arrowhead-width 2)))
          (arrow-rx (+ begin-x (/ bend-arrowhead-width 2)))
          (arrow-y (- end-y bend-arrowhead-height))
          (bend-amount (quarterdiff->string quarterdiff)))

     (ly:grob-set-property! right-tab-note-head 'transparent #t)
     ;; draw resulting bend arrow
     (grob-interpret-markup grob
       (make-drawHoldBendWithArrow-markup
        bend-line-thickness
        begin-x begin-y
        end-x end-y
        arrow-lx arrow-rx arrow-y
        bend-amount))))

#(define (slur::draw-pre-bend-only grob)
   (let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
          (line-count (ly:grob-property staff-symbol 'line-count))
          (staff-space (ly:grob-property staff-symbol 'staff-space))
          (left-bound (ly:spanner-bound grob LEFT))
          (right-bound (ly:spanner-bound grob RIGHT))
          (left-tab-note-head (ly:grob-property left-bound 'cause))
          (right-tab-note-head (ly:grob-property right-bound 'cause))
          (control-points (ly:grob-property grob 'control-points))
          (left-point (car control-points))
          (right-point (cadddr control-points))
          (left-pitch  (ly:event-property (event-cause left-bound) 'pitch))
          (right-pitch (ly:event-property (event-cause right-bound) 'pitch))
          (quarterdiff (- (ly:pitch-quartertones right-pitch)
                         (ly:pitch-quartertones left-pitch)))
          (begin-x (car left-point))
          (y-offset (cdr (ly:grob-extent left-tab-note-head left-tab-note-head 
Y)))
          (begin-y (+ (* (/ (ly:grob-property left-tab-note-head 
'staff-position)
                           2)
                        staff-space)
                     y-offset))
          ;; cdr left-point doesn't work, because invisible stems are included
          (end-x (car right-point))
          (end-y (+ (* (/ (- line-count 1) 2) staff-space) 
y-distance-from-tabstaff-to-arrow-tip))
          (arrow-lx (- begin-x (/ bend-arrowhead-width 2)))
          (arrow-rx (+ begin-x (/ bend-arrowhead-width 2)))
          (arrow-y (- end-y bend-arrowhead-height))
          (bend-amount (quarterdiff->string quarterdiff)))

     (ly:grob-set-property! right-tab-note-head 'transparent #t)
     ;; draw resulting bend arrow
     (grob-interpret-markup grob
       (make-drawHoldBendArrowOnly-markup
        bend-line-thickness
        begin-x begin-y
        end-x end-y
        arrow-lx arrow-rx arrow-y
        bend-amount))))

#(define (tie::draw-hold-bend grob)
   (let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
          (line-count (ly:grob-property staff-symbol 'line-count))
          (staff-space (ly:grob-property staff-symbol 'staff-space))
          (left-tab-note-head (ly:spanner-bound grob LEFT))
          (right-tab-note-head (ly:spanner-bound grob RIGHT))
          (control-points (ly:grob-property grob 'control-points))
          (left-point (car control-points))
          (right-point (cadddr control-points))
          (begin-x (car left-point))
          (end-x (car right-point))
          (line-y (+ (* (/ (- line-count 1) 2) staff-space) 
y-distance-from-tabstaff-to-arrow-tip)))

     (ly:grob-set-property! right-tab-note-head 'transparent #t)
     (grob-interpret-markup grob
       (make-drawDashedLine-markup
        bend-line-thickness
        begin-x end-x line-y)
       ;; with 2.17.21 one could use:
       ;(make-translate-markup (cons 0 line-y)
       ;  (make-override-markup '(on . 0.3)
       ;    (make-draw-dashed-line-markup
       ;      (cons end-x 0))))
       )))

%%% music functions

bendOn =
#(define-music-function (note) (ly:music?)
#{
  \override Voice.Slur.stencil = #slur::draw-pointed-slur
  \override TabVoice.Slur.stencil = #slur::draw-bend-arrow
  $note \noBreak
#})

bendOff = {
  \revert Voice.Slur.stencil
  % \override TabVoice.Slur.stencil = #slur::draw-tab-slur
}

bendGrace =
#(define-music-function (note) (ly:music?)
   #{
     \once \override Voice.Stem.stencil = #point-stencil
     \once \override Voice.Flag.stencil = ##f
     \once \override Voice.Stem.direction = #DOWN
     \once \override Voice.Slur.direction = #UP
     \grace #note
   #})

preBendHold =
#(define-music-function (note) (ly:music?)
   #{
     \once \override TabVoice.Slur.stencil = #slur::draw-pre-bend-only
     \once \override TabStaff.Parentheses.transparent = ##t
     <>\noBeam \parenthesize #note
   #})

preBendRelease =
#(define-music-function (note) (ly:music?)
   #{
     \once \override TabVoice.Slur.stencil = #slur::draw-pre-bend-hold
     \once \override TabStaff.Parentheses.transparent = ##t
     \once \override Voice.Slur.direction = #DOWN
     <>\noBeam \parenthesize #note
   #})

holdBend =
#(define-music-function () ()
   #{
     \once \override TabVoice.Tie.stencil = #tie::draw-hold-bend
   #})

shiftBend = {
  \once \override TabVoice.Slur.stencil = #slur::draw-shifted-bend-arrow
}
\version "2.23.9"

\header{
  title="Memphis, Tennessee"
  composer="Chuck Berry"
  enteredby="saf"
  tagline = ""  % remove the tag line
}

\include "english.ly"
\include "predefined-guitar-fretboards.ly"
\include "definitions.ily"

% We break the riff up, so we can overlap with the melody.
riff_first_measure = {
  \relative {
    < e,\6 b'\5-1 >4 < e\6 b'\5-1 >4 < e\6 cs'\5-3 >4 < e\6 cs'\5-3 >4							| % measure 7 / 26
  }
}

riff_last_measure = {
  \relative {
    < e,\6 d'\5-4 >4 < e\6 d'\5-4 >4 < e\6 cs'\5-3 >4 r4								| % measure 10 / 29
  }
}

riff_notes = {
  \relative {
    < e,\6 d'\5-4 >4 < e\6 d'\5-4 >4 < e\6 cs'\5-3 >4
    \tuplet 3/2 { \bendOn < e'\4-1 >8 ( < eqs\4-1 >8 ) ( < e\4-1 >8 ) \bendOff }					| % measure 8 / 27

    < e,\6 b'\5-1 >4 < e\6 b'\5-1 >4 < e\6 cs'\5-3 >4 < e\6 cs'\5-3 >4							| % measure 9 / 28
  }
}

intro_notes = {
  \tempo 4=180
  \time 2/2
  \clef "treble_(8)"
  \relative {
    \grace < d'\2-3 e\1 >16 \glissando < e\2-3 e\1 >2 < d\2-3 e\1 >2							| % measure 1
    \grace < a\3-1 b\2 >16 \glissando < b\3-1 b\2 >2 \tuplet 3/2 { < a\3-1 >4 < g\3 >4 < e\4-2 >4 }			| % measure 2

    \grace < d'\2-3 e\1 >16 \glissando < e\2-3 e\1 >2 < d\2-3 e\1 >2							| % measure 3
    \grace < a\3-1 b\2 >16 \glissando < b\3-1 b\2 >2 \tuplet 3/2 { < a\3-1 >4 < g\3 >4 < e\4-2 >4 }			| % measure 4

    \grace < d'\2-3 e\1 >16 \glissando < e\2-3 e\1 >2 < d\2-3 e\1 >2 							| % measure 5
    \grace < a\3-1 b\2 >16 \glissando < b\3-1 b\2 >2 \tuplet 3/2 { < a\3-1 >4 < g\3 >4 < e\4-2 >4 }			| % measure 6
    \break
  }
}

global = {
  \key e \major

  % We don't want doubleSlurs on bends, because it gives us double arrows.
  \set doubleSlurs = ##f
  \set fingeringOrientations = #'(up)
  \set glissandoMap = #'((0 . 0))

}

% We break the outro up because we need to start all staves with a grace note to avoid a
% program bug.  But, we want to be able to skip the length of as much of the outro as
% possible, for convenience.
outro_first_measure = {
  \relative {
    \grace < d'\2-3 e\1 >16 \glissando < e\2-3 e\1 >2 < d\2-3 e\1 >2 							| % measure 30
  }
}

outro_notes = {
  \relative {
    \grace < a\3-1 b\2 >16 \glissando < b\3-1 b\2 >2 \tuplet 3/2 { < a\3-1 >4 < g\3 >4 < e\4-2 >4 }			| % measure 31

    \grace < d'\2-3 e\1 >16 \glissando < e\2-3 e\1 >2 < d\2-3 e\1 >2 							| % measure 32
    \grace < a\3-1 b\2 >16 \glissando < b\3-1 b\2 >2 \tuplet 3/2 { < a\3-1 >4 < g\3 >4 < e\4-2 >4 }			| % measure 33

    \grace < d'\2-3 e\1 >16 \glissando < e\2-3 e\1 >2 < d\2-3 e\1 >2 							| % measure 34
    \grace < a\3-1 b\2 >16 \glissando < b\3-1 b\2 >2 \tuplet 3/2 { < a\3-1 >4 < g\3 >4 < e\4-2 >4 }			| % measure 35

    \bar "||"
  }
}

chord_notes = {
  \chordmode {
    \set chordChanges = ##t
    #(skip-of-length intro_notes)											  % length = 6
    #(skip-of-length riff_first_measure)										  % length = 1
    #(skip-of-length riff_notes)											  % length = 2
    #(skip-of-length riff_last_measure)											  % length = 1
    \repeat volta 2 {
      \repeat unfold 8 {b1	}											| % measure 11-18
      \repeat unfold 5 {e1	}											| % measure 19-23
      \repeat unfold 6 {b1:7	}											| % measure 24-29
    }
    \grace s16 s1													| % measure 30
    #(skip-of-length outro_notes)											  % length = 6
    															  % last measure = 35
  }
}

melody_first_measure = {
  % overlaps with riff last measure (first time)
  \relative {
    r2. b'4														| % measure 10
  }
}

melody_last_measure = {
  % overlaps with riff first measure (during repeat)
  \relative {
      e'2. r4														| % measure 26
  }
}

melody_notes = {
  \relative {
      b'4 b4 b4 b4													| % measure 11
      a4 fs4 fs4 gs4													| % measure 12
      b4 b4 b4 b4													| % measure 13
      a2
      <<
        \new Voice = "v1" \relative { \voiceOne r2 }
        \new Voice = "v2" \relative { \voiceTwo \magnifyMusic 0.63 { fs'4 gs4 }}
      >>														| % measure 14
      \break

      b4 b4 b4 b4													| % measure 15
      a4 fs4 fs4 gs4													| % measure 16
      b4 b4 b4 b4													| % measure 17
      a2. gs4														| % measure 18
      \break

      b4 b4 b4 cs4													| % measure 19
      b4 gs4 e4 gs													| % measure 20
      b4 b4 b4 gs4													| % measure 21
      b2 r4 fs8 gs8													| % measure 22
      \break

      b4 b4 b4 gs4													| % measure 23
      a4 a4 a4 fs4													| % measure 24
      gs4 gs4 gs4 fs4													| % measure 25
  }
}

verse_one_part = \lyricmode {
  ""1															| % measure 1
  ""1															| % measure 2
  ""1															| % measure 3
  ""1															| % measure 4

  ""1															| % measure 5
  ""1															| % measure 6
  ""1															| % measure 7
  ""1															| % measure 8

  ""1															| % measure 9
  ""2 ""4 Long														| % measure 10

  dis- tance, in- for-													| % measure 11
  ma- tion, Give me													| % measure 12
  Mem- phis, Ten- nes-													| % measure 13
  see. "" "" ""														| % measure 14

  Help me find the													| % measure 15
  par- ty trying to													| % measure 16
  get in touch with													| % measure 17
  me.2. She4														| % measure 18

  could not leave her													| % measure 19
  num- ber, but I													| % measure 20
  know who placed the													| % measure 21
  call2 ""4 'cause8 my													| % measure 22

  un-4 cle took the													| % measure 23
  mes- sage and he													| % measure 24
  wrote it on the													| % measure 25
  wall.2. ""4														| % measure 26

  ""1															| % measure 27
  ""1															| % measure 28
  ""1															| % measure 29

  % outro
  ""1															| % measure 30
  ""1															| % measure 31
  ""1															| % measure 32
  ""1															| % measure 33
  ""1															| % measure 34
  ""1															| % measure 35
}

verse_two_part = \lyricmode {
  ""1															| % measure 1
  ""1															| % measure 2
  ""1															| % measure 3
  ""1															| % measure 4

  ""1															| % measure 5
  ""1															| % measure 6
  ""1															| % measure 7
  ""1															| % measure 8

  ""1															| % measure 9
  ""1															| % measure 10

  Help4 me, in- for-													| % measure 11
  ma- tion, get in													| % measure 12
  touch with my Ma-													| % measure 13
  rie.2  She's4 the													| % measure 14

  on- ly one who'd													| % measure 15
  call me here from													| % measure 16
  Mem- phis Ten- nes													| % measure 17
  see.2. Her4														| % measure 18

  home is on the													| % measure 19
  south2 side,														| % measure 20
  high4 up on a														| % measure 21
  ridge,2 ""														| % measure 22

  just4 a half a													| % measure 23
  mile2 from4 the													| % measure 24
  Mis- sis- sip- pi													| % measure 25
  Bridge.2. ""4														| % measure 26

  ""1															| % measure 27
  ""1															| % measure 28
  ""1															| % measure 29

  % outro
  ""1															| % measure 30
  ""1															| % measure 31
  ""1															| % measure 32
  ""1															| % measure 33
  ""1															| % measure 34
  ""1															| % measure 35
}

verse_three_part = \lyricmode {
  ""1															| % measure 1
  ""1															| % measure 2
  ""1															| % measure 3
  ""1															| % measure 4

  ""1															| % measure 5
  ""1															| % measure 6
  ""1															| % measure 7
  ""1															| % measure 8

  ""1															| % measure 9
  ""1															| % measure 10

  Last2 time4 I														| % measure 11
  saw Ma- rie, she's													| % measure 12
  wav- ing me good-													| % measure 13
  by.2  ""4 With													| % measure 14

  hur- ry home drops													| % measure 15
  on her cheek that													| % measure 16
  trick- l'd from her													| % measure 17
  eye.2. But4														| % measure 18

  we were pulled a-													| % measure 19
  part, be- cause her													| % measure 20
  Mom did not a-													| % measure 21
  gree,2 ""4 and8 ""8													| % measure 22

  tore4 a- part our													| % measure 23
  hap- py home in													| % measure 24
  Mem- phis Ten- nes-													| % measure 25
  see.2. ""4														| % measure 26

  ""1															| % measure 27
  ""1															| % measure 28
  ""1															| % measure 29

  % outro
  ""1															| % measure 30
  ""1															| % measure 31
  ""1															| % measure 32
  ""1															| % measure 33
  ""1															| % measure 34
  ""1															| % measure 35
}

verse_four_part = \lyricmode {
  ""1															| % measure 1
  ""1															| % measure 2
  ""1															| % measure 3
  ""1															| % measure 4

  ""1															| % measure 5
  ""1															| % measure 6
  ""1															| % measure 7
  ""1															| % measure 8

  ""1															| % measure 9
  ""1															| % measure 10

  Help4 me, in- for-													| % measure 11
  ma- tion, more than													| % measure 12
  that I can- not													| % measure 13
  add,2 ""2														| % measure 14

  On-4 ly that I													| % measure 15
  miss her2 and4													| % measure 16
  all the fun we													| % measure 17
  had.2. Ma-4														| % measure 18

  rie is on- ly														| % measure 19
  six years old,2													| % measure 20
  in-4 for- ma- tion,													| % measure 21
  please,2 ""2														| % measure 22

  try4 to put me													| % measure 23
  through to her in													| % measure 24
  Mem- phis Ten- nes-													| % measure 25
  see.2. ""4														| % measure 26

  ""1															| % measure 27
  ""1															| % measure 28
  ""1															| % measure 29

  % outro
  ""1															| % measure 30
  ""1															| % measure 31
  ""1															| % measure 32
  ""1															| % measure 33
  ""1															| % measure 34
  ""1															| % measure 35
}

solo_part = {
    \tempo 4 = 180
    \time 2/2
    \key e \major
    \clef "treble_(8)"

  \relative {

    \set doubleSlurs = ##f
    \set fingeringOrientations = #'(up)
    \set glissandoMap = #'()

    \mark \markup
    {
      \left-column {
	"Solo - play between 2nd and 3rd verses."
	" "
	" "
	" "
      }
    }

    \repeat percent 4 {
      \grace < a\4-3 cs\3-2 fs\2-1 a\1-4 >8 \glissando < b\4-3 ds\3-2 gs\2-1 b\1-4 >4 < b\4-3 ds\3-2 gs\2-1 b\1-4 >4
      \grace < a\4-3 cs\3-2 fs\2-1 a\1-4 >8 \glissando < b\4-3 ds\3-2 gs\2-1 b\1-4 >4 < b\4-3 ds\3-2 gs\2-1 b\1-4 >4	| % measure 1 / 3

      \grace < b\4-3 ds\3-2 gs\2-1 b\1-4 >8 \glissando < a\4-3 cs\3-2 fs\2-1 a\1-4 >4 < a\4-3 cs\3-2 fs\2-1 a\1-4 >4
      < a\4-3 cs\3-2 fs\2-1 a\1-4 >4 < a\4-3 cs\3-2 fs\2-1 a\1-4 >8 < a\4-3 cs\3-2 fs\2-1 a\1-4 >8			| % measure 2 / 4
    }
    \break

    \repeat percent 2 {
      \grace < d\4-3 fs\3-2 b\2-1 d\1-4 >8 \glissando < e\4-3 gs\3-2 cs\2-1 e\1-4 >4 < e\4-3 gs\3-2 cs\2-1 e\1-4 >4
      \grace < d\4-3 fs\3-2 b\2-1 d\1-4 >8 \glissando < e\4-3 gs\3-2 cs\2-1 e\1-4 >4 < e\4-3 gs\3-2 cs\2-1 e\1-4 >4	| % measure 9 / 11

      \grace < e\4-3 gs\3-2 cs\2-1 e\1-4 >8 \glissando < d\4-3 fs\3-2 b\2-1 d\1-4 >4 < d\4-3 fs\3-2 b\2-1 d\1-4 >4
      < d\4-3 fs\3-2 b\2-1 d\1-4 >4 < d\4-3 fs\3-2 b\2-1 d\1-4 >8 < d\4-3 fs\3-2 b\2-1 d\1-4 >8				| % measure 10 / 12
    }

    \grace < a\4-3 cs\3-2 fs\2-1 a\1-4 >8 \glissando < b\4-3 ds\3-2 gs\2-1 b\1-4 >4 < b\4-3 ds\3-2 gs\2-1 b\1-4 >4
    \grace < a\4-3 cs\3-2 fs\2-1 a\1-4 >8 \glissando < b\4-3 ds\3-2 gs\2-1 b\1-4 >4 < b\4-3 ds\3-2 gs\2-1 b\1-4 >4	| % measure 13

    \grace < b\4-3 ds\3-2 gs\2-1 b\1-4 >8 \glissando < a\4-3 cs\3-2 fs\2-1 a\1-4 >4 < a\4-3 cs\3-2 fs\2-1 a\1-4 >4
    < a\4-3 cs\3-2 fs\2-1 a\1-4 >4 < a\4-3 cs\3-2 fs\2-1 a\1-4 >8 < a\4-3 cs\3-2 fs\2-1 a\1-4 >8			| % measure 14
    \break

    \grace < a\4-3 cs\3-2 fs\2-1 a\1-4 >8 \glissando < b\4-3 ds\3-2 gs\2-1 b\1-4 >4 < b\4-3 ds\3-2 gs\2-1 b\1-4 >4
    \grace < b\4-3 ds\3-2 gs\2-1 b\1-4 >8 \glissando < a\4-3 cs\3-2 fs\2-1 a\1-4 >4 < a\4-3 cs\3-2 fs\2-1 a\1-4 >4	| % measure 15

    < e,\6 b'\5-1 >4 < e\6 b'\5-1 >4 < e\6 cs'\5-3 >4 < e\6 cs'\5-3 >4							| % measure 16

    < e\6 d'\5-4 >4 < e\6 d'\5-4 >4
    < e\6 cs'\5-3 >4 \tuplet 3/2 { \bendOn < e'\4-1 >8 ( < eqs\4-1 >8 ) ( < e\4-1 >8 ) \bendOff }			| % measure 17

    < e,\6 b'\5-1 >4 < e\6 b'\5-1 >4 < e\6 cs'\5-3 >4 < e\6 cs'\5-3 >4							| % measure 18

    < e\6 d'\5-4 >4 < e\6 d'\5-4 >4 < e\6 cs'\5-3 >4 r4									| % measure 19
  }
}


\book {
  \paper {
    #(set-paper-size "arch a")

    system-system-spacing = #'((basic-distance . 0.1) (padding . 4))

    indent = 0
    ragged-right = ##f
    ragged-bottom = ##f
    ragged-last-bottom= ##t
  }

  \score {
    <<
	\new ChordNames	{\set chordChanges = ##t \chord_notes}
      \new StaffGroup <<
	\new Staff {
	  \global
	  \intro_notes													  % length 6
	  \riff_first_measure												  % length 1
	  \riff_notes													  % length 2
	  \riff_last_measure												  % length 1
	  \repeat volta 2 {
	    #(skip-of-length melody_notes)										  % length 15
	    \riff_first_measure												  % length 1
	    \riff_notes													  % length 2
	    \riff_last_measure												  % length 1
	  }
	  \outro_first_measure												  % length 1
	  \outro_notes													  % length 5
	}
	\new TabStaff \with {\RemoveAllEmptyStaves}{
	  \global
	  \intro_notes													  % length 6
	  \riff_first_measure												  % length 1
	  \riff_notes													  % length 2
	  \riff_last_measure												  % length 1
	  \repeat volta 2 {
	    #(skip-of-length melody_notes)										  % length 15
	    \riff_first_measure												  % length 1
	    \riff_notes													  % length 2
	    \riff_last_measure												  % length 1
	  }
	  \outro_first_measure												  % length 1
	  \outro_notes													  % length 5
	}
	\new Staff {
	  \global
	  #(skip-of-length intro_notes)											  % length 6
	  #(skip-of-length riff_first_measure)										  % length 1
	  #(skip-of-length riff_notes)											  % length 2
	  \melody_first_measure												  % length 1
	  \repeat volta 2 {
	    \melody_notes										  		  % length 15
	    \melody_last_measure											  % length 1
	    #(skip-of-length riff_notes)										  % length 2
	    #(skip-of-length riff_last_measure)										  % length 1
	  }
	  \grace s16 s1													| % measure 30
	  #(skip-of-length outro_notes)											  % length 5
	}
      >>
      \new Lyrics		\verse_one_part										  % length = 35
      \new Lyrics		\verse_two_part										  % length = 35
      \new Lyrics		\verse_three_part									  % length = 35
      \new Lyrics		\verse_four_part									  % length = 35

    >>
    \layout {
      % #(layout-set-staff-size 16)
      \omit Voice.StringNumber
      \context {
	\Staff \RemoveAllEmptyStaves
      }
    }
    \midi { }
  }

  \pageBreak

  \score {
    <<
      \new Voice { \solo_part }
      \new TabStaff \with { \RemoveAllEmptyStaves } { \solo_part }
    >>
    \layout {
      % #(layout-set-staff-size 16)
      \omit Voice.StringNumber
      \context {
	\Staff \RemoveAllEmptyStaves
      }
    }
    \midi { }
  }

}

Reply via email to