lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

solved: reference points for non-staff lines


From: Mark Polesky
Subject: solved: reference points for non-staff lines
Date: Fri, 5 Nov 2010 16:17:52 -0700 (PDT)

In case anyone cares, I finally was able to determine the
reference points for the individual non-staff lines.  Here
they are:

CONTEXT       REFERENCE POINT
-----------   ---------------
ChordNames    baseline
NoteNames     baseline
Lyrics        baseline
Dynamics      vertical center
FiguredBass   highest point
FretBoards    guitar nut

I'll add this to the doc patch and push it:
http://codereview.appspot.com/2642043/

The test file I used follows below; I attached a png too.
- Mark

* * * * * * * * * * * * * * *

\version "2.13.39"

#(define zero-line
  '((padding . -inf.0)
    (space . 0)))

\paper {
  left-margin = 15\mm
  line-width = 90\mm
  ragged-right = ##f
  score-system-spacing =
    #'((padding . 0)
       (space . 10)
       (stretchability . 0))
}

\layout {
  \context { \ChordNames
    chordNameLowercaseMinor = ##t
    \override VerticalAxisGroup #'inter-staff-spacing = #zero-line
    % only because I put a NoteName line in the way (below)
    \override VerticalAxisGroup #'inter-loose-line-spacing = #zero-line
  }

  \context { \Dynamics
    \override VerticalAxisGroup #'inter-staff-spacing = #zero-line
  }

  \context { \FiguredBass
    \override VerticalAxisGroup #'inter-staff-spacing = #zero-line
  }

  \context { \FretBoards
    \override VerticalAxisGroup #'staff-affinity = #DOWN
    \override VerticalAxisGroup #'inter-staff-spacing = #zero-line
  }

  \context { \Lyrics
    \override VerticalAxisGroup #'inter-staff-spacing = #zero-line
  }

  \context { \NoteNames
    \override VerticalAxisGroup #'inter-staff-spacing = #zero-line
  }

  \context { \Score
    \override TextScript #'staff-padding = #2
    \override TimeSignature #'stencil = ##f
    \override BarLine #'stencil = ##f
  }
}

%% These contexts have reference points at the baseline:
%%   ChordNames, NoteNames, and Lyrics
<<
  \new ChordNames { \chords { g1:m | } }
  \new NoteNames { s1 | g1 | }
  \new RhythmicStaff {
    \set RhythmicStaff.instrumentName = #"baseline "
    \textLengthOn
    s1^\markup { \typewriter ChordNames } |
    s1^\markup { \typewriter NoteNames } |
    s1^\markup { \typewriter Lyrics } |
  }
  \new Lyrics { \lyrics { \skip 1 | \skip 1 | ghijk1 | } }
>>

%% The reference point for Dynamics is its vertical center
<<
  \new RhythmicStaff {
    \set RhythmicStaff.instrumentName = #"vertical center "
    s1^\markup { \typewriter Dynamics } | s1 | s1 |
  }
  \new Dynamics { s2\mp s\fp | }
>>

%% The reference point for FiguredBass is its highest point
<<
  \new RhythmicStaff {
    \set RhythmicStaff.instrumentName = #"highest point "
    \textLengthOn
    s1^\markup { \typewriter FiguredBass } | s1 | s1 |
  }
  \new FiguredBass { \figuremode { <6 5>1 | } }
>>

%% The reference point for FretBoards is the guitar nut
\include "predefined-guitar-fretboards.ly"

<<
  \new FretBoards { \chordmode { e1 | } }
  \new RhythmicStaff {
    \set RhythmicStaff.instrumentName = #"guitar nut "
    \textLengthOn
    s1^\markup { \typewriter FretBoards } | s1 | s1 |
  }
>>


      

Attachment: ref-points.png
Description: PNG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]