File:Peacherine Rag.pdf

Go to page
next page →
next page →
next page →

Original file(1,239 × 1,752 pixels, file size: 105 KB, MIME type: application/pdf, 4 pages)

Captions

Captions

Add a one-line explanation of what this file represents

Summary edit

Description
Date
Source Faithful transcription from Scott Joplin: Complete Piano Works, Fourth Edition, pages 30–33. Both the copyright of the original work (first published 1896, composer died 1917) and of the critical edition that the work is transcribed from (first published 1971, fourth edition published 1981) should be expired by now.
Author

Original: Scott Joplin Restoration: Vera Brodsky Lawrence (editor)

Vectorization: Galaktos (LilyPond)

LilyPond source

\version "2.18.2"

\header {
  title = "Peacherine Rag"
  composer = "Scott Joplin"
  copyright = "1901 by John Stark & Son"
  tagline = ##f
  page-count = 4
}

% helper command to print title and composer in uppercase in the title while keeping them in regular case for the metadata
#(define-markup-command (uppercase-property layout props symbol) (symbol?)
  (let ((property (chain-assoc-get symbol props)))
   (interpret-markup layout props
    (string-upcase property))))
% helper command to get the page-count (number) as a string for the footer
#(define-markup-command (string-property layout props symbol) (symbol?)
  (let ((property (chain-assoc-get symbol props)))
   (interpret-markup layout props
    (number->string property))))

% http://lsr.di.unimi.it/LSR/Snippet?id=861
#(define ((shift offsets) grob)
"Defines how NoteHeads should be moved according to the given list of offsets."
 (let* (
 ;; NoteHeads
        ;; Get the NoteHeads of the NoteColumn
        (note-heads (ly:grob-array->list (ly:grob-object grob 'note-heads)))
        ;; Get their durations
        (nh-duration-log
          (map
            (lambda (note-head-grobs)
              (ly:grob-property note-head-grobs 'duration-log))
            note-heads))
        ;; Get their length in X-axis-direction
        (stencils-x-lengths
          (map
            (lambda (x)
                (let* ((grob-x-ext (ly:grob-extent x grob X)))
                  (if (interval-sane? grob-x-ext)
                      (interval-length grob-x-ext)
                      0)))
             note-heads))
 ;; Stem
        (stem (ly:grob-object grob 'stem))
        (stem-thick (ly:grob-property stem 'thickness 1.3))
        (stem-x-width (if (ly:grob? stem)
                          (let ((stem-x-ext (ly:grob-extent stem grob X)))
                            (if (interval-sane? stem-x-ext)
                                (interval-length stem-x-ext)
                                (/ stem-thick 10)))
                          ;; Fall back
                          ;; TODO is it ever used?
                          (/ stem-thick 10)))
        (stem-dir (ly:grob-property stem 'direction))
        ;; Calculate a value to compensate the stem-extension
        (stem-x-corr
          (map
            (lambda (q)
               ;; TODO better coding if (<= log 0)
               (cond ((and (= q 0) (= stem-dir 1))
                      (* -1 (+ 2  (* -4 stem-x-width))))
                     ((and (< q 0) (= stem-dir 1))
                      (* -1 (+ 2  (* -1 stem-x-width))))
                     ((< q 0)
                      (* 2 stem-x-width))
                     (else (/ stem-x-width 2))))
             nh-duration-log)))
 ;; Final Calculation for moving the NoteHeads
   (for-each
     (lambda (nh nh-x-length off x-corr)
         (if (= off 0)
           #f
           (ly:grob-translate-axis! nh (* off (- nh-x-length x-corr)) X)))
     note-heads stencils-x-lengths offsets stem-x-corr)))

displaceHeads =
#(define-music-function (parser location offsets) (list?)
"
 Moves the NoteHeads, using (shift offsets)
"
 #{
   \once \override NoteColumn.before-line-breaking = #(shift offsets)
 #})

\paper {
  % based on the default value in ly/titling-init.ly
  bookTitleMarkup = \markup {
    \override #'(baseline-skip . 3.5)
    \column {
      \fill-line { \fromproperty #'header:dedication }
      \override #'(baseline-skip . 8.5)
      \column {
        \fill-line {
          \huge \larger \larger \larger
          \concat { \uppercase-property #'header:title "." }
        }
        \fill-line {
          "" % no poet
          "" % no instrument
          \concat { "by " \uppercase-property #'header:composer "." \hspace #1 }
        }
        \vspace #1.5
      }
    }
  }
  evenFooterMarkup = \markup {
    \on-the-fly \not-first-page \column {
      \fill-line {
        ""
        \tiny \italic \fromproperty #'header:title
        ""
      }
      \fill-line {
        \bold \concat { \string-property #'header:page-count "_" \string-property #'header:page-count }
        ""
        ""
      }
    }
  }
  oddFooterMarkup = \markup {
    \on-the-fly \first-page \column {
      \fill-line {
        ""
        \tiny \italic \concat { "Copyright " \fromproperty #'header:copyright "." }
        ""
      }
      \fill-line {
        \bold \concat { \string-property #'header:page-count "_" \string-property #'header:page-count }
        ""
        ""
      }
    }
    \on-the-fly \not-first-page \column {
      \fill-line {
        ""
        \tiny \italic \fromproperty #'header:title
        ""
      }
      " "
    }
  }
  print-page-number = ##f
}

\layout {
  \context {
    \Score
    \omit BarNumber
    \override NonMusicalPaperColumn.line-break-permission = ##f
    \override NonMusicalPaperColumn.page-break-permission = ##f
  }
}

\score {
  \new PianoStaff <<
    \accidentalStyle piano
    \new Staff = "RH" {
      \clef "violin"
      \key es \major
      \time 2/4
      \tweak padding #4 \tempo "Not too fast."
      \relative es'' {
        % Intro
        es16 f g f~ f8 bes, |
        f'16 g as g~ g8 bes, |
        c16 c8 b16 c d es8 |
        \once \autoBeamOff bes8 bes~ bes16 g as a | \bar ".|:-||" \break
        % Part A
        \repeat volta 2 {
          bes8 <g es'> <g d'> <g c> |
          <g bes>16 <g es'>8 <g d'>16~ q c bes g |
          <g bes>8 <g es'> <g d'> <g c> |
          \stemUp <as bes>16 <as d>8 <as c>16~ q bes f g | \stemNeutral \break
          as8 <as d> <as c> <as bes> |
          as16 <as d>8 <as c>16~ q bes d f |
          <as, d as'>8 q4 <a es' a>8 |
          << { \voiceTwo <bes~ es~ bes'-\tweak Tie.direction #UP \shape #'((-0.5 . 0.5) (0 . 1.5) (0 . 1.5) (0.5 . 0.5)) ~>4 q16 g as a | } \\ { \voiceOne g''8\rest es,16 f \once \stemUp g r16 r8 | } >> \oneVoice | \break
          bes,8 <g es'> <g d'> <g c> |
          <g bes>16 <g es'>8 <g d'>16~ q c bes g |
          <g g'>8 <g b g'>4 <g b f'>8 |
          << { \voiceTwo <g c es>4. c8 | } \\ { \voiceOne r c'16 d es8 r | } >> \oneVoice | \pageBreak
          <c, es f> q <c es fis> q |
          <bes es g>16 q8 <bes bes'>16 \displaceHeads #'(1 -1 0 0) <bes c e as>8 \displaceHeads #'(1 -1 0 0) <bes c e g> |
          <a g'>16 q8 <a \single \omit Accidental es'>16 << { \voiceTwo as4 } \\ { \voiceOne f'16( es) <as, f'>8 } >> \oneVoice |
        }
        \alternative {
          { <g es'>4~ q16 g as a | }
          { q4~ q8 r | \bar ".|:-||" \break }
        }
        % Part B
        \key bes \major
        \repeat volta 2 {
          r <a es' f>[ <a es' g> <a es' f>] |
          r <es' a c>[ <es a d> <es a c>] |
          r <d bes'>[ <d a'> <d g>] |
          <d g>16 f e f~ f g f8 |
          r <\single \omit Accidental es a es'>[ q <es a d>] | \break
          << { \voiceTwo <es a>4. r8 } \\ { \voiceOne d'16 c b c~ c \once \slurDown f( f,8) } >> \oneVoice |
          r <d \single \omit Accidental bes' d>[ <d f d'> <d f c'>] |
          << { \voiceTwo <d f>4. r8 } \\ { \voiceOne c'16 bes a bes~ bes \once \slurDown f'( f,8) } >> \oneVoice |
          r <a, es' f>[ <a es' g> <a es' f>] | \break
          r <es' a c>[ <es a d> <es a c>] |
          r <d bes'>[ <d a'> <d g>] |
          <d g>16 f e f~ f d es f |
          <g, g'> <bes es> <g g'> <a a'>~ q <g g'>8 <bes es>16 | \break
          <f f'> <bes d> <f f'> <g g'>~ q <f f'>8 bes16 |
          <e, bes' d> q8 q16 \once \slurUp <es a c>( bes') <es, c'>8 |
        }
        \alternative {
          { <d bes'>4~ q8 r | }
          { q4 <d as' bes> | \bar "||" \pageBreak }
        }
        % Part A'
        \key es \major
        bes'8 <g es'> <g d'> <g c> |
        <g bes>16 <g es'>8 <g d'>16~ q c bes g |
        <g bes>8 <g es'> <g d'> <g c> |
        \stemUp <as bes>16 <as d>8 <as c>16~ q bes f g | \stemNeutral
        as8 <as d> <as c> <as bes> | \break
        as16 <as d>8 <as c>16~ q bes d f |
        <as, d as'>8 q4 <a es' a>8 |
        << { \voiceTwo <bes~ es~ bes'-\tweak Tie.direction #UP \shape #'((-0.5 . 0.5) (0 . 1.5) (0 . 1.5) (0.5 . 0.5)) ~>4 q16 g as a | } \\ { \voiceOne g''8\rest es,16 f \once \stemUp g r16 r8 | } >> \oneVoice |
        bes,8 <g es'> <g d'> <g c> |
        <g bes>16 <g es'>8 <g d'>16~ q c bes g | \break
        <g g'>8 <g b g'>4 <g b f'>8 |
        << { \voiceTwo <g c es>4. c8 | } \\ { \voiceOne r c'16 d es8 r | } >> \oneVoice |
        <c, es f> q <c es fis> q |
        <bes es g>16 q8 <bes bes'>16 <bes e as>8 <bes e g> |
        <a g'>16 q8 <a \single \omit Accidental es'>16 << { \voiceTwo as4 } \\ { \voiceOne f'16( es) <as, f'>8 } >> \oneVoice |
        <g es'>4 <g des' es>8 r | \bar ".|:-||" \break
        \key as \major
        % Part C
        \repeat volta 2 {
          \stemDown <es es'>16 c' q as c q8 as16 | \stemNeutral
          <es c'> a q <es a des>~ q <es a c>8 a16 |
          <d, f as c>8 \displaceHeads #'(0 0 1 -1) <d f as bes>16 <d~ f~ as-\tweak Tie.direction #UP ~ c~> q bes' as f |
          <d as' c>8 \displaceHeads #'(0 1 -1) <d as' bes>16 <d as' c>~ q bes' as f |
          << { \voiceTwo es8. \once \slurUp f32( g) bes16 <f des'>8 g16 | } \\ { \voiceOne des'4 r | } >> \oneVoice | \break
          << { \voiceTwo es,8. \once \slurUp f32( g) bes16 <f des'>8 f16 | } \\ { \voiceOne des'4 r | } >> \oneVoice |
          \stemDown <es, c'>8 <e c'>16 <f c'>~ q <as c>8 <f c'>16 |
          <es c'>8 <e c'>16 <f c'>~ q8. as32( c) |
          <\single \omit Accidental es, es'>16 c' q as c q8 as16 |
          <es c'> a q <es~ a-\tweak Tie.direction #UP ~ des~> q <es a c>8 a16 | \stemNeutral \pageBreak
          <d, f as c>8 \displaceHeads #'(0 0 1 -1) <d f as bes>16 <d~ f~ as-\tweak Tie.direction #UP ~ c~> q bes' as f |
          <d as' c>8 \displaceHeads #'(0 1 -1) <d as' bes>16 <d as' c>~ q bes' as f |
          << { \voiceTwo es8. \once \slurUp f32( g) bes16 <f des'>8 g16 | } \\ { \voiceOne des'4 r | } >> \oneVoice |
          es,16 g f g des' <des, g>8 <c as'>16~ | \break
        }
        \alternative {
          {
            q2~ |
            \once \autoBeamOff q8 \acciaccatura f' es \acciaccatura f, \once \stemDown es as16 c |
          }
          {
            q2~ |
            q8 r <as c as'> es |
          }
        }
        % Part D
        \repeat volta 2 {
          \once \stemDown g16 bes8 c16 des8 g16 f | \break
          <des es>8 q4 es,8 |
          as16 c8 des16 es8 as16 f |
          <c es>8 q4 q8 |
          <des f>16 q8 q16~ q as' bes as |
          <c, c'>8 q~ q16 <es es'> <d d'> <c c'> | \break
          <bes bes'> g' c bes as d,8 bes'16 |
          es,8 r <es g es'> es, |
          \once \stemDown g16 bes8 c16 des8 g16 f |
          <des es>8 q4 es,8 |
          as16 c8 des16 es8 as16 f | \break
          <c es>8 q4 q8 |
          <des f>16 q8 <b f'>16~ \stemUp q as'( g f) \stemNeutral |
          <c es>8 q~ q16 es c \once \omit Accidental bes |
          <d, as'>8 q <des g bes>16 q8 es16 |
        }
        \alternative {
          { \stemDown <c as'>8 es'16 es es8 es, | \stemNeutral }
          { q4 <as c as'>8 r | \bar "|." \tweak outside-staff-priority #550 \mark \markup { \teeny \fermata } }
        }
      }
    }
    \new Staff = "LH" {
      \clef "bass"
      \key es \major
      \relative es {
        % Intro
        es16 f g f~ f8 bes, |
        f'16 g as g~ g8 bes, |
        c16 c8 b16 c d es8 |
        bes8 bes4 r8 |
        % Part A
        \repeat volta 2 {
          es <g bes es> bes, q |
          es q bes q |
          es q bes q |
          f' <as bes d> bes, q |
          f' q bes, q |
          f' q bes, q |
          f' <bes d> fis <fis c' es> |
          << { \voiceTwo g <bes es> } \\ \voiceOne g4 >> \oneVoice q8 r |
          es <g bes es> bes, q |
          es q bes q |
          b <g' d' f> g, q |
          c <g' c es> q r |
          <as, as'>4 <a a'> |
          <bes bes'>8 <g' bes es> c, <g' bes c e> |
          <f c' es> q <bes d> q |
        }
        \alternative {
          { <es, es'> <g bes es> q r | }
          { <es es'> <bes bes'> <es, es'> f | }
        }
        % Part B
        \key bes \major
        \repeat volta 2 {
          c' <f c' es> f, q |
          c' <f a es'> f, q |
          bes <f' bes d> f, q |
          bes q f q |
          c' <f c' es> f, <f' a es'> |
          c q f, q |
          bes <f' bes d> f, q |
          bes q f q |
          c' <f c' es> f, q |
          c' <f a es'> f, q |
          bes <f' bes d> f, q |
          bes q d q |
          <es, es'> q <f f'> <es es'> |
          <d d'> q <es es'> <d d'> |
          <c c'> q <f f'> q |
        }
        \alternative {
          { <bes bes'> <f' bes> q f, | }
          { <bes bes'> <f f'> <bes, bes'>4 | }
        }
        % Part A'
        \key es \major
        es'8 <g bes es> bes, q |
        es q bes q |
        es q bes q |
        f' <as bes d> bes, q |
        f' q bes, q |
        f' q bes, q |
        f' <bes d> fis <fis c' es> |
        << { \voiceTwo g <bes es> } \\ \voiceOne g4 >> \oneVoice q8 r |
        es <g bes es> bes, q |
        es q bes q |
        b <g' d' f> g, q |
        c <g' c es> q r |
        <as, as'>4 <a a'> |
        <bes bes'>8 <g' bes es> c, <g' c e> |
        <f c' es> q <bes d> q |
        <es, es'> <bes bes'> <es, es'> r |
        \key as \major
        % Part C
        \repeat volta 2 {
          <as as'> <es' as c> <es, es'> <es' as c> |
          <a, a'> q <f f'> q |
          <d d'> q <bes bes'> q |
          <f' f'> q <bes, bes'> q |
          <es es'> <es' g \single \omit Accidental des'> <g, g'> <es' bes' des> |
          <bes bes'> <es g des'> <es, es'> <es' g des'> |
          <as, as'> <es' as c> <es, es'> <es' as c> |
          <as, as'> <es' as c> <es, es'> <es' as c> |
          <as, as'> <es' as c> <es, es'> <es' as c> |
          <a, a'> q <f f'> q |
          <d d'> q <bes bes'> q |
          <f' f'> q <bes, bes'> q |
          <es es'> <es' g \single \omit Accidental des'> <g, g'> <es' bes' des> |
          <bes bes'> <es g des'> <es, es'> <es' g bes> |
        }
        \alternative {
          {
            <as, as'> <es es'>16 <f f'>~ q <es es'> <f f'> <g g'> |
            <as as'>8 r r4 |
          }
          {
            q8 <es es'> <f f'>16 <es es'>8 <c c'>16 |
            <as as'>8 r q r |
          }
        }
        % Part D
        \repeat volta 2 {
          <bes' bes'> <es g des'> <es, es'> <es' bes' des> |
          <g, g'> <es' bes' des> <es, es'> <es' g des'> |
          <as, as'> <es' as c> <es, es'> <es' as c> as, q \once \stemDown c, q |
          des <f' as des> des, <fes' as des> |
          as, <es' as c> a, <fis' a c es> |
          bes, <g' bes es> bes, <\single \omit Accidental f' \single \omit Accidental as bes d> |
          <es g bes es> <g, g'>16 <bes bes'> <es, es'>8 r |
          <bes' bes'> <es g des'> <es, es'> <es' bes' des> |
          <g, g'> <es' bes' des> <es, es'> <es' g des'> |
          <as, as'> <es' as c> <es, es'> <es' as c> as, q \once \stemDown c, q |
          des <f' as des> \once \stemDown d, <f' as b> |
          es, <es' as c> <es, es'> <e e'> |
          <f f'> q <es es'> <g g'> |
        }
        \alternative {
          { <as as'> r r4 | }
          { q8 <es es'> <as, as'> r | }
        }
      }
    }
  >>
}

Licensing edit

Public domain

This work is in the public domain in its country of origin and other countries and areas where the copyright term is the author's life plus 70 years or fewer.


This work is in the public domain in the United States because it was published (or registered with the U.S. Copyright Office) before January 1, 1929.

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current22:27, 23 March 2018Thumbnail for version as of 22:27, 23 March 20181,239 × 1,752, 4 pages (105 KB)Galaktos (talk | contribs)User created page with UploadWizard

There are no pages that use this file.

File usage on other wikis

The following other wikis use this file:

Metadata