File:Maple Leaf Rag.pdf

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Go to page
next page →
next page →
next page →

Original file(1,239 × 1,752 pixels, file size: 107 KB, MIME type: application/pdf, 3 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 26–28. 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 = "Maple Leaf Rag"
  composer = "Scott Joplin"
  copyright = "1899 by John Stark & Son"
  tagline = ##f
  page-count = 3
}

% 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 initial letters of a string for the footer (e. g. "Foo Bar Baz" → "F. B. B.")
#(use-modules (ice-9 regex))
#(define-markup-command (initials-property layout props symbol) (symbol?)
  (let ((property (chain-assoc-get symbol props)))
   (interpret-markup layout props
    (regexp-substitute/global #f "[[:lower:]]+" property 'pre "." 'post))))

% 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 . 6.5)
    \column {
      \vspace #2
      \override #'(baseline-skip . 9)
      \column {
        \fill-line {
          \huge \larger \larger
          \concat { \uppercase-property #'header:title "." }
        }
        \override #'(baseline-skip . 3.0)
        \fill-line {
          "" % no poet
          "" % no instrument
          \small \concat { "BY " { \uppercase-property #'header:composer } "." \hspace #5 }
        }
      }
      \vspace #1
    }
  }
  evenFooterMarkup = \markup {
    \on-the-fly \not-first-page \tiny \italic \initials-property #'header:title
  }
  oddFooterMarkup = \markup {
    \on-the-fly \first-page \small \fill-line { \italic \concat { "Copyright " \fromproperty #'header:copyright "." } }
    \on-the-fly \not-first-page \tiny \italic \initials-property #'header:title
  }
  print-page-number = ##f
}

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

LH = { \change Staff = "LH" }
RH = { \change Staff = "RH" }
lh = \markup { \italic \tiny "l. h." }
rh = \markup { \italic \tiny "r. h." }

\score {
  \new PianoStaff <<
    \new Staff = "RH" {
      \clef "violin"
      \key as \major
      \time 2/4
      \tweak X-offset #5 \tweak padding #3 \tempo "Tempo di marcia."
      \relative as' {
        % Part A
        \partial 8 r8 |
        \repeat volta 2 {
          \stemDown
          r16 as <es es'> as c <es, es'>8 g16 |
          <es es'> g bes <es, es'>~ q4 |
          r16 as <es es'> as c <es, es'>8 g16 |
          <es es'> g bes <es, es'>~ q8 r16 q | \break
          r as ces <fes, fes'> r <es es'> r q |
          r as ces <fes, fes'> r <es es'> r8 |
          \stemNeutral
          \LH \voiceOne \slurDown d,16\rest as(^\rh ces as') r as(^\rh ces as') |
          \RH \oneVoice \slurNeutral r as( ces as') r as( ces as') | \break
          <as, as'>8 q q q16 q~ |
          q es' f c es <as, f'>8 <fes as>16~ |
          <fes! as> bes < fes ces'> as bes <es, c'>8 as16 |
          q as <es bes'>8 <es as> r16 <as, as'>~ | \break
          q8 q q q16 q~ |
          q es' f c es <as, f'>8 <fes as>16~ |
          <fes! as> bes <fes ces'> as bes <es, c'>8 as16 |
        }
        \alternative {
          { q as <es bes'>8 <es as> r8 | }
          { <es c'>16 as <es bes'>8 <es as> r8 | \bar ".|:-||" \pageBreak }
        }
        % Part B
        \repeat volta 2 {
          r16 g' <es es'> g bes <d, d'>8 g16 |
          <des! des'!> g bes <c, c'>~ q es <bes bes'> es |
          r c <as as'> c es <f, f'>8 c'16 |
          <as as'> c es <f, f'>~ q c' q8 |
          r16 es <g, g'> bes des <f, f'>8 es'16 | \break
          <g, g'> bes des <f, f'>~ q des' q8 |
          r16 c <as as'> c es <f, f'>8 c'16 |
          <as as'> c es <f, f'>~ q c' q8 |
          r16 g' <es es'> g bes <d, d'>8 g16 |
          <des! des'!> g bes <c, c'>~ q es <bes bes'> es |
          r c <as as'> c es <f, f'>8 c'16 | \break
          <as as'>8 q <g g'> <ges ges'> |
          \stemUp r16 f a c f c a f |
          r f bes des <f, f'>8 <f bes des> | \stemNeutral
          <d f as c>[ r16 q] r <des bes'>8 es16 |
        }
        \alternative {
          { <c as'>8 <es es'> q q | }
          { r16 as c es <as, as'>8 r | \bar "||" \break }
        }
        % Part A'
        \stemDown
        r16 as <es es'> as c <es, es'>8 g16 |
        <es es'> g bes <es, es'>~ q4 |
        r16 as <es es'> as c <es, es'>8 g16 |
        <es es'> g bes <es, es'>~ q8 r16 q |
        r as ces <fes, fes'> r <es es'> r q | \break
        r as ces <fes, fes'> r <es es'> r8 |
        \stemNeutral
        \LH \voiceOne d,16\rest as^\rh ces as' r as^\rh ces as' |
        \RH \oneVoice r as ces as' r as ces as' |
        <as, as'>8 q q q16 q~ |
        q es' f c es <as, f'>8 <fes as>16~ | \break
        <fes! as> bes < fes ces'> as bes <es, c'>8 as16 |
        q as <es bes'>8 <es as> r16 <as, as'>~ |
        q8 q q q16 q~ |
        q es' f c es <as, f'>8 <fes as>16~ |
        <fes! as> bes <fes ces'> as bes <es, c'>8 as16 |
        q as <es bes'>8 <es as> <as as'> | \bar ".|:-||" \pageBreak
        % Part C
        \key des \major
        \repeat volta 2 {
          <as c es as>8. \displaceHeads #'(1 -1 0 0) <bes c es as>16~ \displaceHeads #'(1 -1 0 0) q <c es> bes8 |
          <as c es as>8. \displaceHeads #'(1 -1 0 0) <bes c es as>16~ \displaceHeads #'(1 -1 0 0) q <c es> bes q |
          as des bes des f as, des f |
          bes, des f as,~ as f' bes, f' |
          <as, c es as>8. \displaceHeads #'(1 -1 0 0) <bes c es as>16~ \displaceHeads #'(1 -1 0 0) q <c es> bes8 | \break
          <as c es as>8. \displaceHeads #'(1 -1 0 0) <bes c es as>16~ \displaceHeads #'(1 -1 0 0) q <c es> bes q |
          as des bes des f as, des f |
          bes, des f as,~ as f' a, <es' f> |
          <bes d f bes>8. \displaceHeads #'(1 -1 0 0) <c d f bes>16~ \displaceHeads #'(1 -1 0 0) q <d f> c8 |
          <bes d f bes>8. \displaceHeads #'(1 -1 0 0) <c d f bes>16~ \displaceHeads #'(1 -1 0 0) q <d f> c q |
          r es <bes bes'> es ges <c, c'>8 es16 | \break
          <bes bes'> es ges <c, c'>~ q es <bes bes'>8 |
          <des fes des'> q <c fes c'> <bes fes' bes> |
          <as f'>16 des es <bes ges'>~ q bes <as f'>8 |
          <g f'>16 des' es <ges, f'>~ q c <ges es'> <f des'>~
        }
        \alternative {
          { q <as as'>8 f'16 q f q f | }
          { <f, des'> des' f as <des, des'>8 r | \bar ".|:-||" \break }
        }
        % Part D
        \key as \major % in the score, the key cancellation is part of the regular key, but in LilyPond it doesn’t seem to be possible to put the KeyCancellation after the KeySignature (and even then the spacing wouldn’t be quite right)
        \repeat volta 2 {
          <as as'> <as f'> <as as'> <as f'> |
          <f' as> <f bes>16 <f c'>~ q bes as f |
          es f8 <as, c>16~ q4 |
          r16 es' <as, f'> c es <as, f'>8 c16 |
          <g es'>8 f'16 <g, bes>~ q4 | \break
          r16 des' <g, f'> bes des <g, f'>8 <as c>16~ |
          q es' <as, f'> c es <as, f'>8 <as c>16~ |
          q es' <as, f'> c es <as, f'>8 es'16 |
          <as, as'>8 <as f'> <as as'> <as f'> |
          <f' as> <f bes>16 <f c'>~ q bes as f |
          as8 f es16 as8 <as, c>16~ | \break
          q es' <as, f'> c es <as, f'>8 <f as>16~ |
          q bes q8 <fes as> <fes bes>16 <es as>~ |
          q bes' <es, c'> as bes <es, c'>8 <d as'>16~ |
          <d! as'> bes' <d, c'> as' r <des, bes'>8 es16 |
        }
        \alternative {
          { \stemDown <c as'>8 <es es'> q q | }
          { <c as'> <g' des' es> <as c es as> \stemNeutral \bar "|." }
        }
      }
    }
    \new Dynamics {
      \override DynamicText.font-size = #-1
      % Part A
      \partial 8 r8 |
      r2\f |
      r2*5 |
      r2\p |
      r2 |
      r2\mf\< |
      r32 r32\! r4.. |
      r2*7 |
      % Part B
      s16\f s16^\markup { \small "stacc." } s4. |
      s2*16
      % Part A'
      r2\f |
      r2*5 |
      r2\p |
      r2 |
      r2\mf\< |
      r8 r8\! r4 |
      r2*6 |
      % Part C
      s2*17 |
      % Part D
      s2*16 |
      s4.
    }
    \new Staff = "LH" {
      \clef "bass"
      \key as \major
      \relative es, {
        % Part A
        \partial 8 <es es'>8 |
        \repeat volta 2 {
          <as as'> <es' as c> q <a, a'> |
          <bes bes'> <es g des'> q <es, es'> |
          <as as'> <es' as c> q <a, a'> |
          <bes bes'> <es g des'> q <es, es'> |
          <fes fes'>4 <es es'>8 q |
          <fes fes'>4 <es es'>8 r |
          \voiceTwo as,^\lh r as'^\lh r |
          \oneVoice as' r as' r |
          \clef "violin"
          \displaceHeads #'(0 0 1 -1) <d, f as b> \displaceHeads #'(0 0 1 -1) q \displaceHeads #'(0 0 1 -1)q \displaceHeads #'(0 0 1 -1) q |
          <es as c> q q q |
          <fes as ces> q <es as c> q |
          q <es g des'> <as c> r |
          \clef "bass"
          <d,, f as b> q q q |
          <es as c> q q q |
          <fes as ces> q <es as c> q |
        }
        \alternative {
          { q <es g des'> <as c> <es, es'> | }
          { <es' as c> <es g des'> <as c> <a, a'> | }
        }
        % Part B
        \repeat volta 2 {
          <bes bes'> <es g des'> <es, es'> <es' g des'> |
          <bes bes'> <es g des'> <es, es'> <g g'> |
          <as as'> <es' as c> <es, es'> <es' as c> |
          <as, as'> <es' as c> <as, as'> <a a'> |
          <bes bes'> <es g des'> <es, es'> <es' g des'> |
          <bes bes'> <es g des'> <bes bes'> <b b'> |
          <c c'> <es as c> <es, es'> <es' as c> |
          <as, as'> <es' as c> <as, as'> <a a'> |
          <bes bes'> <es g des'> <es, es'> <es' g des'> |
          <bes bes'> <es g des'> <es, es'> <g g'> |
          <as as'> <es' as c> <es, es'> <es' as c> |
          <as, as'> q \stemDown <g g'> <ges ges'> \stemNeutral |
          <f f'> q <a a'> q |
          <bes bes'> <f' bes des> q q |
          <bes, f' bes> q <es, es'> <g g'> |
        }
        \alternative {
          { <as as'> <es' as c> q <a, a'> | }
          { <as as'> <as' c es> q <es, es'> | }
        }
        % Part A'
        <as as'> <es' as c> q <a, a'> |
        <bes bes'> <es g des'> q <es, es'> |
        <as as'> <es' as c> q <a, a'> |
        <bes bes'> <es g des'> q <es, es'> |
        <fes fes'>4 <es es'>8 q |
        <fes fes'>4 <es es'>8 r |
        \voiceTwo as,^\lh r as'^\lh r |
        \oneVoice as' r as' r |
        \clef "violin"
        \displaceHeads #'(0 0 1 -1) <d, f as b> \displaceHeads #'(0 0 1 -1) q \displaceHeads #'(0 0 1 -1)q \displaceHeads #'(0 0 1 -1) q |
        <es as c> q q q |
        <fes as ces> q <es as c> q |
        q <es g des'> \once \stemUp <as c> r |
        \clef "bass"
        <d,, f as b> q q q |
        <es as c> q q q |
        <fes as ces> q <es as c> q |
        q <es g des'> <as c> r |
        % Part C
        \key des \major
        \repeat volta 2 {
          <es, es'> <as' c ges'> <ges, ges'> <as' c ges'> |
          <f, f'> <as' c ges'> <es, es'> <c c'> |
          <des des'> <as'' des f> <as, as'> <as' des f> |
          <f, f'> <as' des f> <des,, des'> <d d'> |
          <es es'> <as' c ges'> <ges, ges'> <as' c ges'> |
          <f, f'> <as' c ges'> <es, es'> <c c'> |
          <des des'> <as'' des f> <as, as'> <as' des f> |
          <f, f'> <as' des f> <des,, des'> <c c'> |
          <bes bes'> <bes'' d as'> <d,, d'> <bes'' d as'> |
          <f, f'> <bes' d as'> <bes, bes'> <bes' d as'> |
          <es,, es'> <bes'' es ges> <ges, ges'> <bes' es ges> |
          <es,, es'> <bes'' es ges> <ges, ges'> <bes' es ges> |
          g16 bes8 des16 fes des bes g! |
          <as, as'>8 <as' des f!> bes, <as' bes d> |
          <es bes' des!> <es bes' des> <as c> q |
        }
        \alternative {
          { <des, des'> <as' des f> q <d,, d'> | }
          { <des' des'> <as as'> \once \stemDown <des, des'> <c' c'> | }
        }
        % Part D
        \key as \major
        \repeat volta 2 {
          \stemDown
          <des des'> <as' des f> q <c, c'> |
          <des des'> <as' des f> <bes, bes'> <b b'> |
          <c c'> <as' c es> q <es, es'> |
          <as as'> <es' as c> <es, es'> <a a'> |
          <bes bes'> <es g des'> <es, es'> <a a'> |
          <bes bes'> <es g des'> <es, es'> <g g'> |
          <as as'> <es' as c> <es, es'> <es' as c> |
          <as, as'> <es' as c> <bes bes'> <c c'> |
          <des des'> <as' des f> q <c, c'> |
          <des des'> <as' des f> <bes, bes'> <b b'> |
          <c c'> <as' c es> q <es, es'> |
          <as as'> <es' as c> <es, es'> <es' as c> |
          \stemNeutral
          <des, des'> q <bes bes'> <d d'> |
          <es es'> <es' as c> <es, es'> <e e'> |
          <f f'> q <g g'> q |
        }
        \alternative {
          { <as as'> <es' as c> <bes bes'> <c c'> | }
          { \stemDown <as as'> <es es'> \stemNeutral <as, as'> }
        }
      }
    }
  >>
}

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:05, 23 March 2018Thumbnail for version as of 22:05, 23 March 20181,239 × 1,752, 3 pages (107 KB)Galaktos (talk | contribs)User created page with UploadWizard

The following page uses this file:

File usage on other wikis

The following other wikis use this file:

  • Usage on www.wikidata.org

Metadata