Re: Bug? Accidentals from tied notes having stencils that occupy space

2018-04-03 Thread Thomas Morley
2018-04-02 19:21 GMT+02:00 Stefano Troncaro :
> Hi everyone,
>
> I've experienced that in certain situations, when notes with accidentals are
> tied, the accidental grobs have stencils that seem to be hidden (not shown
> but occupy space) which creates very awkward spacing.
>
> I made this snippet to showcase this:
>>
>> \version "2.19.80"
>> \language "english"
>>
>> \paper {
>>   ragged-right = ##t
>> }
>>
>> %Tied accidentals have the same placement as the untied ones,
>> %even though that with ties there should be less grobs occupying space
>> \score {
>>   \relative c'' {
>> 1  \break
>> ~  \break
>> ~  \break
>> ~  \break
>>   }
>> }
>>
>> %Checking that there are accidental grobs for each notehead
>> \score {
>>   \relative c'' {
>>  ~
>> \override Accidental.before-line-breaking =
>> #(lambda (grob)
>>(pretty-print grob))
>> 
>> %Output:
>> %#
>> %#
>> %#
>> %#
>> %Showing there are 4 accidental grobs instead of only the required 2
>>   }
>> }
>>
>> %Deleting the tied accidentals "fixes" placement, shouldn't this be
>> default?
>> \score {
>>   \relative c'' {
>>  ~
>> \override NoteColumn.before-line-breaking =
>> #(lambda (nc)
>>(let* ((nhds (ly:grob-array->list (ly:grob-object nc 'note-heads)))
>>   (accs
>> (filter ly:grob?
>>   (map
>>(lambda (nhd)
>>  (ly:grob-object nhd 'accidental-grob))
>>nhds)))
>>   (stils
>>(list
>>  ly:accidental-interface::print
>>  #f
>>  ly:accidental-interface::print
>>  #f)))
>>  (for-each
>>   (lambda (acc stil)
>> (ly:grob-set-property! acc 'stencil stil))
>>   accs
>>   stils)))
>> 
>>   }
>> }
>>
>
> I'm fairly confident that the accidental grobs shouldn't be taking up space
> in those cases. But maybe this is intended by design and I'm failing to see
> it's use.
>
> So, is this a bug?



Hi,

in general I'd agree calling it a bug of type ugly.

Looking for an even worse example I found:

chrd = < cis~ dis~ eis~ fis gis~ ais~ bis >1
\relative c' { \chrd q }

Though, according to common type-setting rules accidentals of tied
notes have to be repeated at line-start.

chrd = < cis~ dis~ eis~ fis gis~ ais~ bis >1
\relative c' { \chrd \break q }

This _is_ correct!
So it should be clear that simply deleting accidental-stencils via
'before-line-breaking is not the way to go.

I observed the following interesting behaviour.
If you set
AccidentalPlacement.positioning-done = ##t
i.e. don't let Lilypond place the accidentals, only _two_ accidentals
are printed.
Uncommenting the break will print all accidentals, as wished.


chrd = < cis~ dis~ eis~ fis gis~ ais~ bis >1
\relative c' {
  \chrd
  %\break
  \override Staff.AccidentalPlacement.positioning-done = ##t
  q
}

Ofcourse now no placement happens and all clashes.
Also this means it doesn't matter, whether accidental-grobs or their
stencils are present or not.
Rather that the default-procedure, i.e.
ly:accidental-placement::calc-positioning-done should be improved,
imho.


Cheers,
  Harm

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Bug? Accidentals from tied notes having stencils that occupy space

2018-04-02 Thread Stefano Troncaro
Hi everyone,

I've experienced that in certain situations, when notes with accidentals
are tied, the accidental grobs have stencils that seem to be hidden (not
shown but occupy space) which creates very awkward spacing.

I made this snippet to showcase this:

> \version "2.19.80"\language "english"
> \paper {
>   ragged-right = ##t}
> %Tied accidentals have the same placement as the untied ones,
> %even though that with ties there should be less grobs occupying space\score {
>   \relative c'' {
> 1  \break
> ~  \break
> ~  \break
> ~  \break
>   }
> }
> %Checking that there are accidental grobs for each notehead\score {
>   \relative c'' {
>  ~
> \override Accidental.before-line-breaking =
> #(lambda (grob)
>(pretty-print grob))
> 
> %Output:
> %#
> %#
> %#
> %#
> %Showing there are 4 accidental grobs instead of only the required 2
>   }
> }
> %Deleting the tied accidentals "fixes" placement, shouldn't this be 
> default?\score {
>   \relative c'' {
>  ~
> \override NoteColumn.before-line-breaking =
> #(lambda (nc)
>(let* ((nhds (ly:grob-array->list (ly:grob-object nc 'note-heads)))
>   (accs
> (filter ly:grob?
>   (map
>(lambda (nhd)
>  (ly:grob-object nhd 'accidental-grob))
>nhds)))
>   (stils
>(list
>  ly:accidental-interface::print
>  #f
>  ly:accidental-interface::print
>  #f)))
>  (for-each
>   (lambda (acc stil)
> (ly:grob-set-property! acc 'stencil stil))
>   accs
>   stils)))
> 
>   }
> }
>
>
>
I'm fairly confident that the accidental grobs shouldn't be taking up space
in those cases. But maybe this is intended by design and I'm failing to see
it's use.

So, is this a bug?
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user