Hi all,

I'm hoping to show a Schenker graph example on my lecture tour next week, but I find <http://lsr.dsi.unimi.it/LSR/Item?id=501> unnecessarily complex — it ends up [to my eye] looking like far more work, and way scarier, than doing it in Finale (which I did a bunch of in my day, hating every step of the way).

Hence the attached simplified/improved code file, at least as far as I've gotten it in an hour or so.

I'm really just looking for early/mid-stream criticisms of my approaches/techniques, so that I end up with the best output — eventually, I want to have a schenker.ly file for \include purposes (to be available w/Lily, if appropriate), enabling the simplest possible "front-end" coding requirements.

Any hints/help would be appreciated!

Cheers,
Kieren.

\version "2.13.6"
\include "english.ly"

hideNote = \once \override NoteHead #'transparent = ##t

\paper {
  line-width = 5.5\in
}

\layout
{
  indent = #0
  ragged-right = ##f
  \context
  {
    \Voice
    \name UrsatzVoice
    \alias Voice
    \override NoteHead #'duration-log = #1
    \override TextScript #'baseline-skip = #1
  }
  \context
  {
    \UrsatzVoice
    \name UrlinieVoice
    \override Beam #'positions = #'(8 . 8)
    \override TextScript #'direction = #UP
    \override TextScript #'font-size = #-1
  }
  \context
  {
    \UrsatzVoice
    \name BassbrechungVoice
    \override Beam #'positions = #'(-8 . -8)
    \override TextScript #'direction = #DOWN
  }
  \context
  {
    \Voice
    \name ForegroundVoice
    \alias Voice
    \override NoteHead #'duration-log = #8
  }
  \context
  {
    \Staff
    \override NoteCollision #'merge-differently-headed = ##t
    \remove "Time_signature_engraver"
    \accepts UrlinieVoice
    \accepts BassbrechungVoice
    \accepts ForegroundVoice
  }
}

global = {
  \key g \major
  \cadenzaOn
  s8*15
  \bar "|."
}

urlinie = \relative c'' {
  s8*4
  b8*6[-\markup \column { ^ 3 }
  a8*4-\markup \column { ^ 2 }
  g8]-\markup \column { ^ 1 }
}

foregroundUpper = \scaleDurations #'(1 . 8) \relative c'' {
  g1_\(
  fs^(
  g)\)
  a^(
  \hideNote b)
  a
  b^(
  c)^(
  \once \override Stem #'transparent = ##f b1)
  s
  \hideNote a1
  c^\(
  b_(
  a)\)
  \hideNote g
}

foregroundLower = \scaleDurations #'(1 . 8) \relative c' {
  \hideNote g1^\(
  a_(
  b)\)
  fs^(
  e)
  c^(
  d)
  fs,_(
  g)
  b
  c_(^\(
  a)
  \hideNote d\)
  d,
  \hideNote g
}

bassbrechung = \relative c' {
  g8*12[-\markup{"I"}
  d8*2-\markup{"V"}
  g,8]-\markup{"I"}
}

\score
{
  \new PianoStaff = "PianoStaff_Schenker"
  <<
    \new Staff = "Staff_upper"
    <<
      \new UrlinieVoice { \voiceOne << \global \urlinie >> }
      \new ForegroundVoice { \voiceTwo << \global \foregroundUpper >> }
    >>
    \new Staff <<
      \clef bass
      \new ForegroundVoice { \voiceOne << \global \foregroundLower >> }
      \new BassbrechungVoice { \voiceFour \bassbrechung }
    >>
  >>
}
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to