[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: print change of clef after barline
From: |
Thomas Morley |
Subject: |
Re: print change of clef after barline |
Date: |
Sun, 1 Jun 2014 12:09:40 +0200 |
2014-06-01 11:32 GMT+02:00 James <address@hidden>:
> On 01/06/14 10:29, Thomas Morley wrote:
>>
>> 2014-06-01 10:23 GMT+02:00 David Kastrup <address@hidden>:
>>>
>>> Damian leGassick <address@hidden> writes:
>>>
>>>> On 31 May 2014, at 22:12, Thomas Morley wrote:
>>>>>
>>>>> Did you look into
>>>>> IR 3.1.22 BreakAlignment ->break-align-orders ?
>>>>>
>>>>> Or NR A.17 Layout properties ->break-align-orders
>>>>
>>>> what is not clear is this bit:
>>>>
>>>> The format is a vector of length 3, where each element is one order
>>>> for end-of-line, middle of line, and start-of-line, respectively.
>>>> \override Score.BreakAlignment #'break-align-orders =
>>>> #(make-vector 3 '(
>>>> span-bar
>>>> breathing-sign
>>>> staff-bar
>>>> clef
>>>> key-cancellation
>>>> key-signature
>>>> time-signature))
>>>>
>>>> has only one order,
>>>
>>> No.
>>>
>>> -- Scheme Procedure: make-vector len [fill]
>>> -- C Function: scm_make_vector (len, fill)
>>> Return a newly allocated vector of LEN elements. If a second
>>> argument is given, then each position is initialized to FILL.
>>> Otherwise the initial contents of each position is unspecified.
>>>
>>>> suggesting that it acts on end-of-line only, but it also affects
>>>> middle of line and also changes the spacing at start of line
>>>>
>>>> I couldn't work out form the docs how to do the override just for
>>>> middle of line (which is what I want), or how to do a vector with a
>>>> different orders for end/middle/start respectively
>>>
>>> By specifying three different vectors instead of creating one vector
>>> with three equal elements.
>>>
>>> --
>>> David Kastrup
>>
>> @Damian
>>
>> David explained it already, though, here a bit more demonstrative:
>>
>> Look at:
>>
>> guile> (use-modules (ice-9 pretty-print))
>> guile> (pretty-print (make-vector 3 '(
>> span-bar
>> breathing-sign
>> staff-bar
>> clef
>> key-cancellation
>> key-signature
>> time-signature)))
>>
>> It returns:
>>
>> #((span-bar
>> breathing-sign
>> staff-bar
>> clef
>> key-cancellation
>> key-signature
>> time-signature)
>> (span-bar
>> breathing-sign
>> staff-bar
>> clef
>> key-cancellation
>> key-signature
>> time-signature)
>> (span-bar
>> breathing-sign
>> staff-bar
>> clef
>> key-cancellation
>> key-signature
>> time-signature))
>>
>> Now it should be clear why this affects end-of-line, middle of line
>> and start-of-line in the same manner.
>> To get different settings you can't use (make-vector 3 '( ... )), but
>> you have to specify each entry in the vector differently.
>>
>> @David
>> If an experienced user like Damian stumbles across it, it might be
>> worth clearifying it in NR/IR.
>> What do you think?
>
> Yes, even I could follow that.
>
> We could use this example and one that shows how to write it for specifying
> different vectors. I assume from reading this it would be
>
> ((make-vector 1 '( ... )),
> (make-vector 2 '( ... )),
> (make-vector 3 '( ... )),)
Not exactly.
Here some crazy settings for time-signature:
#(
;; end of line: time-signature right before key-signature
(span-bar
breathing-sign
staff-bar
clef
key-cancellation
time-signature
key-signature)
;; middle of line: time-signature right before staff-bar
(span-bar
breathing-sign
time-signature
staff-bar
clef
key-cancellation
key-signature)
;; start of line: time-signature right before clef
(span-bar
breathing-sign
staff-bar
time-signature
clef
key-cancellation
key-signature))
Though, applying this would return warnings:
No spacing entry from TimeSignature to `clef'
No spacing entry from TimeSignature to `key-signature'
which can be resolved with additional overrides for TimeSignature.space-alist
Here a compilable snippet:
\version "2.19.6"
{
\override Score.BreakAlignment #'break-align-orders =
##(
;; end of line: time-signature right before key-signature
(span-bar
breathing-sign
staff-bar
clef
key-cancellation
time-signature
key-signature)
;; middle of line: time-signature before staff-bar
(span-bar
breathing-sign
time-signature
staff-bar
clef
key-cancellation
key-signature)
;; start of line: time-signature before clef
(span-bar
breathing-sign
staff-bar
time-signature
clef
key-cancellation
key-signature))
\override Score.TimeSignature.space-alist.clef = #'(extra-space . 1)
\override Score.TimeSignature.space-alist.key-signature = #'(extra-space . 1)
\key c \minor
\time 2/2
c''1
\key cis \minor
\time 4/4
d''
\break
\key c \minor
\time 8/8
e''
}
Cheers,
Harm
- Re: print change of clef after barline, Damian leGassick, 2014/06/01
- Re: print change of clef after barline, David Kastrup, 2014/06/01
- Re: print change of clef after barline, Thomas Morley, 2014/06/01
- Re: print change of clef after barline, Thomas Morley, 2014/06/01
- Re: print change of clef after barline, David Kastrup, 2014/06/01
- Re: print change of clef after barline, Damian leGassick, 2014/06/01
- Re: print change of clef after barline, Thomas Morley, 2014/06/01