lilypond-user
[Top][All Lists]
Advanced

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

Re: Changing the "midpoint" of a custom staff for stem direction purpose


From: Vaughan McAlley
Subject: Re: Changing the "midpoint" of a custom staff for stem direction purposes
Date: Mon, 11 Feb 2013 20:23:29 +1100

On 11 February 2013 15:32, Paul Morris <address@hidden> wrote:
> On Feb 10, 2013, at 6:09 PM, Eluze <address@hidden> wrote:
>
>> I never used such transformations, but in
>>
>> /NR 1.6.2 Modifying single staves /(2.17.11) I found:
>>
>> "The clef position and the position of middle C may need to be adjusted
>> accordingly to fit
>> the new lines."
>
> Thanks Eluze.  I had actually tried this, as follows:
>
> 1. Set the custom staff line-positions so that they are centered on the 
> default staff midpoint (0).  This means the direction of stems are 
> automatically correct.  No Scheme needed.
>
> 2. Set middleCPosition and clefPosition for the staff to adjust the notes and 
> clef so they appear at the correct vertical positions on the staff.
>
> (See example code below.)
>
> The only trouble is that any time there's a clef change, you have to manually 
> re-do the custom middleCPosition and clefPosition that you had set, since 
> each new clef overwrites these staff settings with the default values (not 
> your custom values).
>
> I guess ideally the midpoint of the staff would be a customizable Staff 
> property (so that stem directions could be correct when using custom staff 
> line positions).
>
> And/or it would be handy if there were a way to set what the 
> middleCPosition(s) and clefPosition(s) should be for clefs on a given staff 
> once, without having to manually reset them with each clef change.  So 
> basically if there were a way to customize the values that are set for 
> middleCPosition and clefPosition for each type of clef, within a given staff.
>
> I'm not sure if there's a way to use Scheme to override the clef setting 
> operation to apply custom values instead of the defaults, maybe with a custom 
> clef engraver?
>
> I realize we're pretty far into non-standard customization territory here...
>
> Cheers,
> -Paul
>
>
> %%%% BEGIN %%%%
>
> \version "2.16.1"
>
> theMusic = \relative c' {
>
>   % adjustments to middleCPosition and clefPosition
>   % overwritten by new clef signs
>   c4 e g c
>   \clef bass
>   c,, e g c
>   \clef treble
>   c e g c
>   \break
>
>   % manual re-setting required to restore correct positions
>   \set Staff.middleCPosition = #-5
>   \set Staff.clefPosition = #-1
>   c,4 e g c
>   \clef bass
>   \set Staff.middleCPosition = #-2
>   \set Staff.clefPosition = #1
>   c, e g c
>   \clef treble
>   \set Staff.middleCPosition = #-5
>   \set Staff.clefPosition = #-1
>   c, e g c
> }
>
> \score {
>   \new Staff \with {
>   \override StaffSymbol #'line-positions = #'( -3 -1 1 3)
>   middleCPosition = #-5
>   clefPosition = #-1
>   }
>   {\theMusic }
>   \layout {}
> }
>
> %%%% END %%%%
>
>

You can put it all in a variable:

myBass = {
  \clef bass
  \set Staff.middleCPosition = #-2
  \set Staff.clefPosition = #1
}

Vaughan



reply via email to

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