lilypond-user
[Top][All Lists]
Advanced

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

Re: Control of spacing between left edge and first note


From: Thomas Liggett
Subject: Re: Control of spacing between left edge and first note
Date: Mon, 27 Mar 2017 13:56:04 +1300

Hi Andrew,

With your help I've got the desired result – many thanks! (BTW I was
able to set the "key-signature extra-space" without including that
whole alist.) But I'd like to better understand the logic behind
what's happening in my code below.

To produce a staff with no clef, key signature, time signature, or
barlines, and to be able to specify the spacing between the left edge
of the staff and the first note (i.e. to be able to produce diagrams
comprising only staves with note-groups as in the example below):

* just making the clef a point-stencil, omitting the bar-engraver, and
using \override LeftEdge.space-alist.clef = #'(extra-space . xxx)
achieves this for the first system, but NOT for any subsequent systems
(hence my original query)

To control the first system AND subsequent systems:

* a (semantically irrelevant) key signature is required (set to a
point-stencil, otherwise extra space is introduced) – C major will
suffice. Why? (What's the difference to Lilypond between "no key
signature" and "a specified key signature of no sharps or flats"?!?)

* barlines, made transparent, are required to "reference off" as you
say. (Transparent barlines, naturally, include space either side, so
in order to have an arbitrary number of notes spaced evenly across a
system – i.e. in this example, to avoid an extra space between the two
groups of 8 notes – a time signature equal to the length of the system
must be specified. But the nice thing about omitting the bar engraver
in my original was that it avoided the need to specify a semantically
irrelevant time signature.) But how are barlines even involved in
controlling the space between the left edge of the staff and the first
note?

Is it related to the issue Urs is dealing with in this thread?
http://lists.gnu.org/archive/html/lilypond-user/2017-03/msg00627.html

Thanks again,
Thomas

%%%%%%%%%%%%%%%%%

\version "2.19.41"

\paper { indent = 0 }

\layout {
  \context {
    \Score
    \override LeftEdge.space-alist.clef = #'(extra-space . 2) % space
between left edge and invisible clef
    \remove Bar_number_engraver
  }
  \context {
    \Staff
    \remove Time_signature_engraver
%    \remove Bar_engraver
    \override Clef.stencil = #point-stencil % make clef effectively invisible
    \override Clef.space-alist.key-signature = #'(extra-space . 0) %
space between invisible clef and invisible key sig
    \override KeySignature.stencil = #point-stencil
    \override BarLine.transparent = ##t
  }
}
\score {
  \relative c'' {
    \clef "treble"
    \key c \major % comment out this line and see what happens!
    \time 4/2 % comment out this line and there's extra space added
where default (4/4) barlines would be
    \stemUp
    b8 b c c d d e e f f g g a a b b \break
    b,, b c c d d e e f f g g a a b b
  }
}

%%%%%%%%%%%%%%%%%


On Sat, Mar 11, 2017 at 6:01 PM Andrew Bernard <address@hidden> wrote:
>
> Hi Thomas,
>
> Try this perhaps.
>
> [You have to retain clefs and barlines and render them transparent, so that 
> they exist to reference off. One ought to be able to just set the value 
> (key-signature extra-space . 8) say, but I am not sure why we need the whole 
> shebang alist.]
>
>
> Andrew
>
> == snip
>
> \version "2.19.56"
>
> \paper { indent = 0 }
>
> \score {
>   \relative c'' {
>
>     \override Staff.KeySignature.stencil = #point-stencil
>     \override Staff.Clef.stencil = #point-stencil
>     \override Staff.BarLine.transparent = ##t
>
>     \key a \major
>     \stemUp
>     %
>
>     b8 b c c d d e e f f g g a a b b
>     \break
>     b,, b c c d d e e f f g g a a b b
>   }
>
>   \layout {
>     \context {
>       \Score
>       \remove Bar_number_engraver
>     }
>     \context {
>       \Staff
>       \remove Time_signature_engraver
>
>       \override Clef.space-alist =
>       #'((ambitus extra-space . 2.0)
>          (breathing-sign minimum-space . 0.0)
>          (cue-end-clef extra-space . 0.8)
>          (clef extra-space . 0.8)
>          (cue-clef extra-space . 0.8)
>          (staff-bar extra-space . 0.0)
>          (key-cancellation extra-space . 0.0)
>          (key-signature extra-space . 8)
>          (time-signature extra-space . 1.0)
>          (custos extra-space . 0.0)
>          (first-note fixed-space . 0.0)
>          (right-edge extra-space . 0.0))
>
>     }
>   }
> }
>
> == snip
>



reply via email to

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