[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tweaking notehead direction in chords
From: |
Thomas Morley |
Subject: |
Re: Tweaking notehead direction in chords |
Date: |
Thu, 13 Dec 2012 03:03:50 +0100 |
Hi David (N), Paul,
2012/12/13 Paul Morris <address@hidden>:
> On Dec 12, 2012, at 7:24 PM, Thomas Morley <address@hidden> wrote:
>
>> Hi Paul,
>>
>> I had a look at the LSR-snippet
>> http://lsr.dsi.unimi.it/LSR/Item?id=861
>>
>> It's no problem to make it work with 2.14.2 just adding a $-sign
>> before offsets in the music-function.
>>
>> But you will have noticed that after applying the function an
>> additional override for 'stem-attachment is necessary in many cases.
>> You should show how to do this. At least for some examples.
>>
>> In general I'd prefer to have a more automated way for offsetting the
>> NoteHeads.
>> The hardcoded value of 1.251178 will change for different NoteHeads and
>> styles.
>>
>> I'll continue to think about it. ;)
>>
>>
>> Regards,
>> Harm
>
>
> Hi Harm,
>
> Thanks for taking a look at it and for the tip on using a $-sign for 2.14.2.
> I was also thinking about the best way to correct the 'stem-attachment
> values. It would be nice if that could be automatic.
>
> I had emailed David Nalesnik to ask about posting his code to the LSR, and he
> also had the concern about the hard-coded 1.251178. He sent me the following
> which automatically calculates the offset amount based on the width of the
> NoteHead, so I will update the snippet with this revision.
>
> #(define ((shift offsets) grob)
> (let* ((note-heads (ly:grob-array->list (ly:grob-object grob 'note-heads)))
> (stem (ly:grob-object grob 'stem))
> (stem-ext (ly:grob-property stem 'X-extent)))
> (for-each
> (lambda (p q)
> (let ((head-ext (interval-length (ly:grob-property p 'X-extent))))
> (ly:grob-translate-axis! p (* q (- head-ext (cdr stem-ext))) X)))
> note-heads offsets)))
>
> displaceHeads =
> #(define-music-function (parser location offsets) (list?)
> #{
> \once \override NoteColumn #'before-line-breaking = #(shift offsets)
> #}
> )
>
> Regards,
> -Paul
I've seen the updated version in the LSR already and tend to approve it as is.
I doubt it could be possible to create an automatism for 'stem-attachment.
I tried to break the code, though.
And noticed that adding Fingering, StringNumber and Script will result
in some strange not aligned output.
Adding a stencil-tweak switches it to funny.
->png
\version "2.16.1"
% displaceHeads is omitted
#(define rhomb-note
(lambda (grob)
(let* ((stencil (ly:note-head::print grob))
(new-stil
(grob-interpret-markup grob
(markup #:rotate -45 #:box #:rotate 45 #:stencil stencil))))
new-stil)))
\relative c' {
\displaceHeads #'(1 0 1 1)
<\tweak #'stencil #rhomb-note b\1 cis-1\2 eis-2\3 gis-3\4 >4-.---|
}
It is much easier to break code than to create it.
I should do more review-work.
:D
-Harm
atest-15.preview.png
Description: PNG image
- Tweaking notehead direction in chords, Arle Lommel, 2012/12/11
- Message not available
- Re: Tweaking notehead direction in chords, Arle Lommel, 2012/12/11
- Re: Tweaking notehead direction in chords, Thomas Morley, 2012/12/12
- Re: Tweaking notehead direction in chords, David Nalesnik, 2012/12/12
- Re: Tweaking notehead direction in chords, Paul Morris, 2012/12/12
- Re: Tweaking notehead direction in chords,
Thomas Morley <=
- Re: Tweaking notehead direction in chords, Paul Morris, 2012/12/12
- Re: Tweaking notehead direction in chords, Thomas Morley, 2012/12/13
- Re: Forced double accidental, Paul Morris, 2012/12/13
- Re: Forced double accidental, David Nalesnik, 2012/12/13
- Re: Forced double accidental, David Nalesnik, 2012/12/13
- Re: Forced double accidental, David Kastrup, 2012/12/14
- Re: Tweaking notehead direction in chords, Paul Morris, 2012/12/15
- Re: Tweaking notehead direction in chords, Thomas Morley, 2012/12/15
- Re: Tweaking notehead direction in chords, Thomas Morley, 2012/12/17
- Re: Tweaking notehead direction in chords, Paul Morris, 2012/12/17