> On 26 Apr 2023, at 18:04, David Poon <dpor...@gmail.com> wrote:
> 
> On Wed, 26 Apr 2023 at 08:35, Hans Aikema <hans.aik...@aikebah.net 
> <mailto:hans.aik...@aikebah.net>> wrote:
>> 
>> 
>>> On 26 Apr 2023, at 17:06, Mats Bengtsson <mat...@kth.se 
>>> <mailto:mat...@kth.se>> wrote:
>>> 
>>> 
>>> On 2023-04-26 16:39, Michael Werner wrote:
>>>> \version "2.25.4"
>>>> 
>>>> \new Staff = "main" {
>>>> 
>>>>   \overrideTimeSignatureSettings
>>>>   4/4        % timeSignatureFraction - i.e. the time signature
>>>>   1/4        % baseMomentFraction - what note duration to base this on
>>>>   1,1,1,1        % beatStructure - this is the beat pattern
>>>>   #'()       % beamExceptions - needed to disable the defaults, or some 
>>>> such thing
>>>> 
>>>>   \new Voice {
>>>>     \time 4/4
>>>> 
>>>>     \relative c' {
>>>>       d4 d4. e8 e e
>>>>     }
>>>>   }
>>>> }
>>>> 
>>> Unfortunately that doesn't answer the question, since then d4 d4 d8 d8 d8 
>>> d8 will also be beamed by quarter notes. As far as I know the answer to 
>>> David's question is that it cannot be obtained using the current support 
>>> for automatic beams. The beam decisions is only taken based on the shortest 
>>> duration encountered since the possible start of the current beam. A more 
>>> advanced support would be needed to be able to specify more specific 
>>> beaming patterns.
>>> 
>>>     /Mats
>>> 
>> 
>> I suspect that more advanced support is already there with the 
>> beamExceptions (which the  should be specified as a non-empty a-list
>> 
>> https://lilypond.org/doc/v2.24/Documentation/notation/beams#setting-automatic-beam-behavior
>> 
>> but I've never experimented with it.
>> 
> 
> After trying various things with beamExceptions, it looks to me like they're 
> restricted to defining permissible endpoints for beams, but not starting 
> points. Perhaps someone can verify if this is true, and if it's possible to 
> change?
> 

After a look into the code-base I see that I was indeed mistaken that 
beamExceptions could be used for it. Looks like you would have to reconfigure 
the autoBeamCheck [1] into some other procedure than the 
default-auto-beam-check procedure [1] which would not allow START to occur 
mid-beat (in the 4/4 time signature)

[1] 
https://gitlab.com/search?search=autoBeamCheck&nav_source=navbar&project_id=18695663&group_id=11436&search_code=true&repository_ref=master
[2] https://gitlab.com/lilypond/lilypond/-/blob/master/scm/auto-beam.scm

This would exceed my lilypond-coding-skill level, but I’m fairly certain that 
it can be done (as a last resort hacky way it should be possible to hack it 
into your own install of lilypond by modifying auto-beam.scm, but I’m fairly 
certain there will be cleaner ways to override the default autoBeamCheck 
procedure which other list-members might be able to guide you on.



Reply via email to