From Fedora Project Wiki

< User:Crantila‎ | FSC

Revision as of 05:54, 29 June 2010 by Crantila (talk | contribs) (page creation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Working on a Piano Score

Address: User:Crantila/FSC/Typesetting/LilyPond_Piano

I'm using Schubert's Impromptu Op.90 (D.899) Nr.4, in A-flat major. Edition Peters: 10463, ed. Walter Niemann

Formatting the Score

  • Title: Impromptu
  • Composer: Schubert, Franz
  • Opus: Opus 90/4
  • Parts: Piano, one voice only (add more as needed)
  • Key signature: As Major
  • Time signature: 3/4
  • Tempo indication: Allegretto
  • Remove default tagline

Set up the LilyPond File

whatever

Start Inputting

  1. I'm starting with the right hand, first two bars, then copy-paste to make 4. Pitch and rhythms first, then the slur, articulations, and fingerings.
    • Use double- or triple-spaces to separate chunks of sixteenths in the source code. I used triple-spaces.
    • Fingering is indicated as note-digit like ces16(-2
  2. Then I'll do the first two left-hand bars, and copy-paste into 4. Then ties, articulation.
  3. Then I'll put in the dynamics. This is odd for piano music, where you have dynamic centred between the two staves:
    1. you can either ignore that precision, and put them onto the top staff, or
    2. use a "Dynamics" context, which also works for pedals, which is described later

... later...

  • When two fingerings are specified simultaneously, for a chord, use << >> notation and attach the fingering to the particular pitch where you want it, and let LilyPond figure it out for you
    • You don't even need to use << and >> but just put the fingering on the pitch that you want
  • Cautionary accidentals !
  • Spanner crescendo
  • longer-term polyphony and octave-checking
    • how it's good to use absolute pitch specifications at the beginning of these chunks
  • spanner octave signs
  • mention the greatness of being able to point somewhere on the PDF preview and having Frescobaldi automatically find that location for you and move the cursor there in the editing window
  • adding and using the "Dynamics" context

!! when you write one staff before the other, it is easier to check for errors in that section !! !! the ordering of articulation stuff doesn't really matter, but Frescobaldi helps you sometimes if you do something wrong, by highlighting and underlining in red... and colour-coding things of the same placement !! !! if the score from which you're inputting doesn't have measure numbers, you may wish to put them in !! !! when inputting chords, they will be processed from the lowest note of the previous chord, so you need to be careful of the octave that you'll be in... unless you notate it in a << >> !!

Creating and Using Different Dynamics Spanners

This:

The text used for crescendos and decrescendos can be changed by modifying the context properties crescendoText and decrescendoText. The style of the spanner line can be changed by modifying the 'style property of DynamicTextSpanner. The default value is 'hairpin, and other possible values include 'line, 'dashed-line and 'dotted-line.

\relative c'' {
  \set crescendoText = \markup { \italic { cresc. poco } }
  \set crescendoSpanner = #'text
  \override DynamicTextSpanner #'style = #'dotted-line
  a2\< a
  a2 a
  a2 a
  a2 a\mf
}

Creating and Using the "Dynamics" Context

What a context is, why add this, what it's good for, etc.

Dynamics Context:

global = {
  \key c \major
  \time 4/4
}

upper = \relative c'' {
  \clef treble
  a4 b c d
}

lower = \relative c {
  \clef bass
  a2 c
}

dynamics = {
  s2\fff\> s4 s\!\pp
}

pedal = {
  s2\sustainOn s\sustainOff
}

\score {
  \new PianoStaff = "PianoStaff_pf" <<
    \new Staff = "Staff_pfUpper" << \global \upper >>
    \new Dynamics = "Dynamics_pf" \dynamics
    \new Staff = "Staff_pfLower" << \global \lower >>
    \new Dynamics = "pedal" \pedal
  >>

  \layout {
    % define Dynamics context
    \context {
      \type "Engraver_group"
      \name Dynamics
      \alias Voice
      \consists "Output_property_engraver"
      \consists "Piano_pedal_engraver"
      \consists "Script_engraver"
      \consists "New_dynamic_engraver"
      \consists "Dynamic_align_engraver"
      \consists "Text_engraver"
      \consists "Skip_event_swallow_translator"
      \consists "Axis_group_engraver"

      pedalSustainStrings = #'("Ped." "*Ped." "*")
      pedalUnaCordaStrings = #'("una corda" "" "tre corde")
      \override DynamicLineSpanner #'Y-offset = #0
      \override TextScript #'font-size = #2
      \override TextScript #'font-shape = #'italic
      \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
    }
    % modify PianoStaff context to accept Dynamics context
    \context {
      \PianoStaff
      \accepts Dynamics
    }
  }
}

\score {
  \new PianoStaff = "PianoStaff_pf" <<
    \new Staff = "Staff_pfUpper" << \global \upper \dynamics \pedal >>
    \new Staff = "Staff_pfLower" << \global \lower \dynamics \pedal >>
  >>
  \midi { }
}