lilypond-user
[Top][All Lists]
Advanced

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

Re: custom compound time signature


From: David Kastrup
Subject: Re: custom compound time signature
Date: Mon, 04 Jun 2012 18:26:53 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux)

David Kastrup <address@hidden> writes:

> Thomas Morley <address@hidden> writes:
>
>> 2012/6/2 diekunstderfuge <address@hidden>:
>>>
>>> Hi all,
>>>
>>> I'm trying to achieve the compound time signature seen in the image here:
>>> http://old.nabble.com/file/p33950720/custom_time_signature.png
>>>
>>> As you can see, it's meant to represent 3 bars of 2/4 grouped together as
>>> one bar. My plan was to write it as one bar of 3/2 and then override the
>>> time signature stencil.
>>>
>>> First, I've used this snippet ( http://lsr.dsi.unimi.it/LSR/Item?id=272
>>> http://lsr.dsi.unimi.it/LSR/Item?id=272 ) to create a "dummy" staff with
>>> only the time signatures. (For some reason, \numericTimeSignature does not
>>> seem to work inside of the TimeSig context. Does anyone know why?)
>>
>> Have a look at /ly/property-init.ly. where \numericTimeSignature is defined:
>> numericTimeSignature = \override Staff.TimeSignature #'style = #'numbered
>>
>> But now you're using a new custom-defined context: "TimeSig"
>> Replace Staff with TimeSig and it will work.
>
> It is much more straightforward to add
> \alias "Staff"
> to the definition of the TimeSig context.  Then any overrides for Staff
> issued within TimeSig will not get handed upstairs.
>
> This should probably be added to the LSR snippet: while it does not in
> itself require it currently, it is likely to cause irritation like
> here.

Since I got no further reply on this suggestion, here is the respective
code that should work as expected.

\layout {
  \context {
    \type "Engraver_group"
    \consists "Time_signature_engraver"
    \consists "Axis_group_engraver"
    \name "TimeSig"
    \alias "Staff"
    \override TimeSignature #'font-size = #3
    \override TimeSignature #'break-align-symbol = ##f
    \override TimeSignature #'X-offset =
      #ly:self-alignment-interface::x-aligned-on-self
    \override TimeSignature #'self-alignment-X = #CENTER
    \override TimeSignature #'after-line-breaking =
      #shift-right-at-line-begin
  }
  \context {
    \Score
    \accepts TimeSig
  }
  \context {
    \Staff
    \remove "Time_signature_engraver"
  }
}

timeSignatures = { \numericTimeSignature \time 2/4 s2 \time 3/4 s2. \time 4/4 
s1 }

\score {
  <<
    \new TimeSig \timeSignatures
    \new Staff \relative { c'2 c2. c1 }
    \new Staff { a2 a2. a1 }
  >>
}

-- 
David Kastrup



reply via email to

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