Two issue with Measure_grouping_engraver

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Two issue with Measure_grouping_engraver

Thomas Morley-2
Hi,

while playing with the Measure_grouping_engraver
see:
http://lilypond.1069038.n5.nabble.com/changing-symbols-used-by-Measure-grouping-engraver-td215283.html
I noticed two things which may qualify as bugs.

(1) A documentation issue

I tried to get MeasureGrouping in default 4/4-time, but nothing happened.
One has to set beatStructure and baseMoment accordingly. The current
docs make it sound it should work out of the box, though.

\version "2.19.82"

\new Staff \with { \consists "Measure_grouping_engraver" }
  {
      %% to get MeasureGrouping, next two lines need to be uncommented
    %\set Timing.beatStructure = 4,4
    %\set Score.baseMoment = #(ly:make-moment 1/8)
    \repeat unfold 8 a'8
  }

(2) ugly behaviour at line-break, if other items occur

With

\version "2.19.82"

musII = {
  \time 9/8
  \repeat unfold 33 a'8
  a'4.
}

\new Staff \with { \consists "Measure_grouping_engraver" }
  { \musII \break \musII }

the last NoteColumn of the first line is moved to the left, so the gap
between the NoteColumn and the BarLine is far too small.


Cheers,
  Harm

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

Thomas Morley-2
2018-08-03 14:32 GMT+02:00 Thomas Morley <[hidden email]>:

> Hi,
>
> while playing with the Measure_grouping_engraver
> see:
> http://lilypond.1069038.n5.nabble.com/changing-symbols-used-by-Measure-grouping-engraver-td215283.html
> I noticed two things which may qualify as bugs.
>
> (1) A documentation issue
>
> I tried to get MeasureGrouping in default 4/4-time, but nothing happened.
> One has to set beatStructure and baseMoment accordingly. The current
> docs make it sound it should work out of the box, though.
>
> \version "2.19.82"
>
> \new Staff \with { \consists "Measure_grouping_engraver" }
>   {
>       %% to get MeasureGrouping, next two lines need to be uncommented
>     %\set Timing.beatStructure = 4,4
>     %\set Score.baseMoment = #(ly:make-moment 1/8)
>     \repeat unfold 8 a'8
>   }
>
> (2) ugly behaviour at line-break, if other items occur
>
> With
>
> \version "2.19.82"
>
> musII = {
>   \time 9/8
>   \repeat unfold 33 a'8
>   a'4.
> }
>
> \new Staff \with { \consists "Measure_grouping_engraver" }
>   { \musII \break \musII }
>
> the last NoteColumn of the first line is moved to the left, so the gap

Aargh, should read: it's moved to the right

> between the NoteColumn and the BarLine is far too small.
>
>
> Cheers,
>   Harm

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

Torsten Hämmerle
Hi Harm,

I'd agree that this would make up a nice little issue.

Obviously, at the end of the line, the additional "after-barline elements"
(\time in this case, but changing the \key has the same effect) are causing
the trouble.
The Measure_grouping_engraver even changes the natural spacing when \time or
\key are being used in mid-measure. This will hardly happen in practice, but
technically, it should be working.

All the best,
Torsten




--
Sent from: http://lilypond.1069038.n5.nabble.com/Bugs-f58488.html

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

James Lowe-3
In reply to this post by Thomas Morley-2
Hello


On 03/08/18 13:32, Thomas Morley wrote:

> Hi,
>
> while playing with the Measure_grouping_engraver
> see:
> http://lilypond.1069038.n5.nabble.com/changing-symbols-used-by-Measure-grouping-engraver-td215283.html
> I noticed two things which may qualify as bugs.
>
> (1) A documentation issue
>
> I tried to get MeasureGrouping in default 4/4-time, but nothing happened.
> One has to set beatStructure and baseMoment accordingly. The current
> docs make it sound it should work out of the box, though.
>
> \version "2.19.82"
>
> \new Staff \with { \consists "Measure_grouping_engraver" }
>    {
>        %% to get MeasureGrouping, next two lines need to be uncommented
>      %\set Timing.beatStructure = 4,4
>      %\set Score.baseMoment = #(ly:make-moment 1/8)
>      \repeat unfold 8 a'8
>    }

Is this just a documentation issue though?

*should* it work out of the box (to use your phrase) and so
documentation is correct and the bug is in the code?

We don't document bugs after all.

James

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

Thomas Morley-2
2018-08-03 16:51 GMT+02:00 James Lowe <[hidden email]>:

> Hello
>
>
> On 03/08/18 13:32, Thomas Morley wrote:
>>
>> Hi,
>>
>> while playing with the Measure_grouping_engraver
>> see:
>>
>> http://lilypond.1069038.n5.nabble.com/changing-symbols-used-by-Measure-grouping-engraver-td215283.html
>> I noticed two things which may qualify as bugs.
>>
>> (1) A documentation issue
>>
>> I tried to get MeasureGrouping in default 4/4-time, but nothing happened.
>> One has to set beatStructure and baseMoment accordingly. The current
>> docs make it sound it should work out of the box, though.
>>
>> \version "2.19.82"
>>
>> \new Staff \with { \consists "Measure_grouping_engraver" }
>>    {
>>        %% to get MeasureGrouping, next two lines need to be uncommented
>>      %\set Timing.beatStructure = 4,4
>>      %\set Score.baseMoment = #(ly:make-moment 1/8)
>>      \repeat unfold 8 a'8
>>    }
>
>
> Is this just a documentation issue though?
>
> *should* it work out of the box (to use your phrase) and so documentation is
> correct and the bug is in the code?
>
> We don't document bugs after all.
>
> James

Hi James,

this is not a bug in the code, afaik.

But the functionality of MeasureGrouping relies on appropriate
settings for beatStructure and baseMoment.
This should be documented, that's all.


In my example the default settings for 4/4-time prevent any output
from Measure_grouping_engraver.
The user should be told about the need to adjust those settings in
certain cases.

The IR states Measure_grouping_engraver is reading following context-properties:
  baseMoment (moment)
  beatStructure (list)
  currentMusicalColumn (graphical (layout) object)
  measurePosition (moment)

Imho, we should explain in the NR how to use them for MeasureGrouping.

Cheers,
  Harm

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

James Lowe-3
Harm,


On 03/08/18 16:03, Thomas Morley wrote:

> 2018-08-03 16:51 GMT+02:00 James Lowe <[hidden email]>:
>> Hello
>>
>>
>> On 03/08/18 13:32, Thomas Morley wrote:
>>> Hi,
>>>
>>> while playing with the Measure_grouping_engraver
>>> see:
>>>
>>> http://lilypond.1069038.n5.nabble.com/changing-symbols-used-by-Measure-grouping-engraver-td215283.html
>>> I noticed two things which may qualify as bugs.
>>>
>>> (1) A documentation issue
>>>
>>> I tried to get MeasureGrouping in default 4/4-time, but nothing happened.
>>> One has to set beatStructure and baseMoment accordingly. The current
>>> docs make it sound it should work out of the box, though.
>>>
>>> \version "2.19.82"
>>>
>>> \new Staff \with { \consists "Measure_grouping_engraver" }
>>>     {
>>>         %% to get MeasureGrouping, next two lines need to be uncommented
>>>       %\set Timing.beatStructure = 4,4
>>>       %\set Score.baseMoment = #(ly:make-moment 1/8)
>>>       \repeat unfold 8 a'8
>>>     }
>>
>> Is this just a documentation issue though?
>>
>> *should* it work out of the box (to use your phrase) and so documentation is
>> correct and the bug is in the code?
>>
>> We don't document bugs after all.
>>
>> James
> Hi James,
>
> this is not a bug in the code, afaik.
>
> But the functionality of MeasureGrouping relies on appropriate
> settings for beatStructure and baseMoment.
> This should be documented, that's all.
>
>
> In my example the default settings for 4/4-time prevent any output
> from Measure_grouping_engraver.
> The user should be told about the need to adjust those settings in
> certain cases.
>
> The IR states Measure_grouping_engraver is reading following context-properties:
>    baseMoment (moment)
>    beatStructure (list)
>    currentMusicalColumn (graphical (layout) object)
>    measurePosition (moment)
>
> Imho, we should explain in the NR how to use them for MeasureGrouping.
>
> Cheers,
>    Harm
>
https://sourceforge.net/p/testlilyissues/issues/5397/

for the doc issue.

James

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

James Lowe-3
In reply to this post by Thomas Morley-2


On 03/08/18 13:32, Thomas Morley wrote:
> while playing with the Measure_grouping_engraver
> see:
> http://lilypond.1069038.n5.nabble.com/changing-symbols-used-by-Measure-grouping-engraver-td215283.html
> I noticed ...

>
> (2) ugly behaviour at line-break, if other items occur
>
> With
>
> \version "2.19.82"
>
> musII = {
>    \time 9/8
>    \repeat unfold 33 a'8
>    a'4.
> }
>
> \new Staff \with { \consists "Measure_grouping_engraver" }
>    { \musII \break \musII }
>
> the last NoteColumn of the first line is moved to the left, so the gap
> between the NoteColumn and the BarLine is far too small.
https://sourceforge.net/p/testlilyissues/issues/5398/

For the ugly output.

James

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

James Lowe-3
In reply to this post by James Lowe-3
Hello,


On 05/08/18 08:38, James Lowe wrote:

> Harm,
>
>
> On 03/08/18 16:03, Thomas Morley wrote:
>> 2018-08-03 16:51 GMT+02:00 James Lowe <[hidden email]>:
>>> Hello
>>>
>>>
>>> On 03/08/18 13:32, Thomas Morley wrote:
>>>> Hi,
>>>>
>>>> while playing with the Measure_grouping_engraver
>>>> see:
>>>>
>>>> http://lilypond.1069038.n5.nabble.com/changing-symbols-used-by-Measure-grouping-engraver-td215283.html 
>>>>
>>>> I noticed two things which may qualify as bugs.
>>>>
>>>> (1) A documentation issue
>>>>
>>>> I tried to get MeasureGrouping in default 4/4-time, but nothing
>>>> happened.
>>>> One has to set beatStructure and baseMoment accordingly. The current
>>>> docs make it sound it should work out of the box, though.
>>>>
>>>> \version "2.19.82"
>>>>
>>>> \new Staff \with { \consists "Measure_grouping_engraver" }
>>>>     {
>>>>         %% to get MeasureGrouping, next two lines need to be
>>>> uncommented
>>>>       %\set Timing.beatStructure = 4,4
>>>>       %\set Score.baseMoment = #(ly:make-moment 1/8)
>>>>       \repeat unfold 8 a'8
>>>>     }
>>>
>>> Is this just a documentation issue though?
>>>
>>> *should* it work out of the box (to use your phrase) and so
>>> documentation is
>>> correct and the bug is in the code?
>>>
>>> We don't document bugs after all.
>>>
>>> James
>> Hi James,
>>
>> this is not a bug in the code, afaik.
>>
>> But the functionality of MeasureGrouping relies on appropriate
>> settings for beatStructure and baseMoment.
>> This should be documented, that's all.
I don't know how this cannot be a bug in the code or perhaps I don't
understand how this should work but giving an example for 4/4 with the
one example doesn't help anyone either.

For instance in an attempt to edit the existing snippet, I played about
with different \time settings to see if I could show the differences -
it's always good to show a negative before showing a positive I find.

Why would using using \time values of 6/8, 5/8, 4/8 engrave something
(triangles) and 3/8 not?

Playing about with the form

\score {
{
   \time X/Y
   \repeat unfold 16 a'4
}
   \layout {
     \context {
       \Staff
       \consists "Measure_grouping_engraver"
     }
   }
}

Where X and Y change I cannot figure out why I get some engraving with
some values and not other

I've attached a screenshot of some random output values.

Why do I get something for 4/8 and not 7/8 is it because of the value of
the note and how we define a group? I cannot work out the logic to it.

So explaining it for 4/4 makes no sense in that there has to be
something more fundamental in the explanation or it is a bug.

Can you or anyone help?

James





_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond

Screenshot_22.png (33K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

Thomas Morley-2
2018-08-05 13:26 GMT+02:00 James Lowe <[hidden email]>:

> Hello,
>
>
>
> On 05/08/18 08:38, James Lowe wrote:
>>
>> Harm,
>>
>>
>> On 03/08/18 16:03, Thomas Morley wrote:
>>>
>>> 2018-08-03 16:51 GMT+02:00 James Lowe <[hidden email]>:
>>>>
>>>> Hello
>>>>
>>>>
>>>> On 03/08/18 13:32, Thomas Morley wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> while playing with the Measure_grouping_engraver
>>>>> see:
>>>>>
>>>>>
>>>>> http://lilypond.1069038.n5.nabble.com/changing-symbols-used-by-Measure-grouping-engraver-td215283.html
>>>>> I noticed two things which may qualify as bugs.
>>>>>
>>>>> (1) A documentation issue
>>>>>
>>>>> I tried to get MeasureGrouping in default 4/4-time, but nothing
>>>>> happened.
>>>>> One has to set beatStructure and baseMoment accordingly. The current
>>>>> docs make it sound it should work out of the box, though.
>>>>>
>>>>> \version "2.19.82"
>>>>>
>>>>> \new Staff \with { \consists "Measure_grouping_engraver" }
>>>>>     {
>>>>>         %% to get MeasureGrouping, next two lines need to be
>>>>> uncommented
>>>>>       %\set Timing.beatStructure = 4,4
>>>>>       %\set Score.baseMoment = #(ly:make-moment 1/8)
>>>>>       \repeat unfold 8 a'8
>>>>>     }
>>>>
>>>>
>>>> Is this just a documentation issue though?
>>>>
>>>> *should* it work out of the box (to use your phrase) and so
>>>> documentation is
>>>> correct and the bug is in the code?
>>>>
>>>> We don't document bugs after all.
>>>>
>>>> James
>>>
>>> Hi James,
>>>
>>> this is not a bug in the code, afaik.
>>>
>>> But the functionality of MeasureGrouping relies on appropriate
>>> settings for beatStructure and baseMoment.
>>> This should be documented, that's all.
>
>
> I don't know how this cannot be a bug in the code or perhaps I don't
> understand how this should work but giving an example for 4/4 with the one
> example doesn't help anyone either.
>
> For instance in an attempt to edit the existing snippet, I played about with
> different \time settings to see if I could show the differences - it's
> always good to show a negative before showing a positive I find.
>
> Why would using using \time values of 6/8, 5/8, 4/8 engrave something
> (triangles) and 3/8 not?
>
> Playing about with the form
>
> \score {
> {
>   \time X/Y
>   \repeat unfold 16 a'4
> }
>   \layout {
>     \context {
>       \Staff
>       \consists "Measure_grouping_engraver"
>     }
>   }
> }
>
> Where X and Y change I cannot figure out why I get some engraving with some
> values and not other
>
> I've attached a screenshot of some random output values.
>
> Why do I get something for 4/8 and not 7/8 is it because of the value of the
> note and how we define a group? I cannot work out the logic to it.
>
> So explaining it for 4/4 makes no sense in that there has to be something
> more fundamental in the explanation or it is a bug.
>
> Can you or anyone help?
>
> James
>
>
>
>

Hi James,

If I understand correctly:

In general the time-signature says about a measure:
how many beats are present and how long are those beats.
P.e. in 3/8 there are 3 beats, each a 8th note long

In LilyPond we add a structure (`beatStructure`) to those beats (`baseMoment`),
reflecting the most common accents and determine the auto-beaming.
p.e. 9/8 is structered as three groups of three 8th-notes.
For beamings not according to `beatStructure` we set `beamExceptions`,
p.e. for 3/8

Now, MeasureGrouping may annotate groups of beats, _if_ groups are defined by
`beatStructure`, see 9/8. Single beats will not cause any MeasureGrouping,
see 3/8.

Here some test-code:

displaySomeContextPoperties =
\context Timing
\applyContext
  #(lambda (ctx)
    (newline)
    (format #t
      "timeSignatureFraction: ~a\n\tbeatStructure: ~a\n\tbaseMoment: ~a
      \tbeamExceptions: ~a\n"
      (ly:context-property ctx 'timeSignatureFraction)
      (ly:context-property ctx 'beatStructure)
      (ly:context-property ctx 'baseMoment)
      (ly:context-property ctx 'beamExceptions)))

\new Staff \with { \consists "Measure_grouping_engraver" }
{
  \time 3/8 \displaySomeContextPoperties \repeat unfold 3 { a'8 }
  \time 4/8 \displaySomeContextPoperties \repeat unfold 4 { a'8 }
  \time 5/8 \displaySomeContextPoperties \repeat unfold 5 { a'8 }
  \time 6/8 \displaySomeContextPoperties \repeat unfold 6 { a'8 }
  \time 7/8 \displaySomeContextPoperties \repeat unfold 7 { a'8 }
  \time 8/8 \displaySomeContextPoperties \repeat unfold 8 { a'8 }
  \time 9/8 \displaySomeContextPoperties \repeat unfold 9 { a'8 }
  \time 1/4 \displaySomeContextPoperties \repeat unfold 2 { a'8 }
  \time 2/4 \displaySomeContextPoperties \repeat unfold 4 { a'8 }
  \time 3/4 \displaySomeContextPoperties \repeat unfold 6 { a'8 }
  \time 4/4 \displaySomeContextPoperties \repeat unfold 8 { a'8 }
}

Terminal-output:
timeSignatureFraction: (3 . 8)
    beatStructure: (1 1 1)
    baseMoment: #<Mom 1/8>
          beamExceptions: ((end (1/8 3)))

timeSignatureFraction: (4 . 8)
    beatStructure: (2 2)
    baseMoment: #<Mom 1/8>
          beamExceptions: ()

timeSignatureFraction: (5 . 8)
    beatStructure: (3 2)
    baseMoment: #<Mom 1/8>
          beamExceptions: ()

timeSignatureFraction: (6 . 8)
    beatStructure: (3 3)
    baseMoment: #<Mom 1/8>
          beamExceptions: ()

timeSignatureFraction: (7 . 8)
    beatStructure: (1 1 1 1 1 1 1)
    baseMoment: #<Mom 1/8>
          beamExceptions: ()

timeSignatureFraction: (8 . 8)
    beatStructure: (3 3 2)
    baseMoment: #<Mom 1/8>
          beamExceptions: ()

timeSignatureFraction: (9 . 8)
    beatStructure: (3 3 3)
    baseMoment: #<Mom 1/8>
          beamExceptions: ()

timeSignatureFraction: (1 . 4)
    beatStructure: (1)
    baseMoment: #<Mom 1/4>
          beamExceptions: ()
[
timeSignatureFraction: (2 . 4)
    beatStructure: (1 1)
    baseMoment: #<Mom 1/4>
          beamExceptions: ()

timeSignatureFraction: (3 . 4)
    beatStructure: (1 1 1)
    baseMoment: #<Mom 1/4>
          beamExceptions: ((end (1/8 6) (1/12 3 3 3)))

timeSignatureFraction: (4 . 4)
    beatStructure: (1 1 1 1)
    baseMoment: #<Mom 1/4>
          beamExceptions: ((end (1/8 4 4) (1/12 3 3 3 3)))


So, MeasureGrouping does not happen for time-signatures where the
`beatStructure` is a list of single beats, like 3/8 or 7/8 or 3/4 etc.
At least not per default. One can try playing with `beatStructure` and probably
`baseMoment` to get MeasureGrouping, though.

See:

\new Staff \with { \consists "Measure_grouping_engraver" }
{
  \time 3/8
  a'8 8 8
  \set Timing.beatStructure = #'(3)
  8 8 8
}

Changing `beatStructure` and probably `baseMoment` ofcourse affects
auto-beaming.
We explain this already elsewhere, but probably we'll should mention
it in the section for
MeasureGrouping as well.

HTH,
  Harm

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

James Lowe-3
Harm,


On 05/08/18 22:05, Thomas Morley wrote:

> 2018-08-05 13:26 GMT+02:00 James Lowe <[hidden email]>:
>> Hello,
>>
>>
>>
>> On 05/08/18 08:38, James Lowe wrote:
>>> Harm,
>>>
>>>
>>> On 03/08/18 16:03, Thomas Morley wrote:
>>>> 2018-08-03 16:51 GMT+02:00 James Lowe <[hidden email]>:
>>>>> Hello
>>>>>
>>>>>
>>>>> On 03/08/18 13:32, Thomas Morley wrote:
>>>>>> Hi,
>>>>>>
>>>>>> while playing with the Measure_grouping_engraver
>>>>>> see:
>>>>>>
>>>>>>
>>>>>> http://lilypond.1069038.n5.nabble.com/changing-symbols-used-by-Measure-grouping-engraver-td215283.html
>>>>>> I noticed two things which may qualify as bugs.
>>>>>>
>>>>>> (1) A documentation issue
>>>>>>
>>>>>> I tried to get MeasureGrouping in default 4/4-time, but nothing
>>>>>> happened.
>>>>>> One has to set beatStructure and baseMoment accordingly. The current
>>>>>> docs make it sound it should work out of the box, though.
>>>>>>
>>>>>> \version "2.19.82"
>>>>>>
>>>>>> \new Staff \with { \consists "Measure_grouping_engraver" }
>>>>>>      {
>>>>>>          %% to get MeasureGrouping, next two lines need to be
>>>>>> uncommented
>>>>>>        %\set Timing.beatStructure = 4,4
>>>>>>        %\set Score.baseMoment = #(ly:make-moment 1/8)
>>>>>>        \repeat unfold 8 a'8
>>>>>>      }
>>>>>
>>>>> Is this just a documentation issue though?
>>>>>
>>>>> *should* it work out of the box (to use your phrase) and so
>>>>> documentation is
>>>>> correct and the bug is in the code?
>>>>>
>>>>> We don't document bugs after all.
>>>>>
>>>>> James
>>>> Hi James,
>>>>
>>>> this is not a bug in the code, afaik.
>>>>
>>>> But the functionality of MeasureGrouping relies on appropriate
>>>> settings for beatStructure and baseMoment.
>>>> This should be documented, that's all.
>>
>> I don't know how this cannot be a bug in the code or perhaps I don't
>> understand how this should work but giving an example for 4/4 with the one
>> example doesn't help anyone either.
>>
>> For instance in an attempt to edit the existing snippet, I played about with
>> different \time settings to see if I could show the differences - it's
>> always good to show a negative before showing a positive I find.
>>
>> Why would using using \time values of 6/8, 5/8, 4/8 engrave something
>> (triangles) and 3/8 not?
>>
>> Playing about with the form
>>
>> \score {
>> {
>>    \time X/Y
>>    \repeat unfold 16 a'4
>> }
>>    \layout {
>>      \context {
>>        \Staff
>>        \consists "Measure_grouping_engraver"
>>      }
>>    }
>> }
>>
>> Where X and Y change I cannot figure out why I get some engraving with some
>> values and not other
>>
>> I've attached a screenshot of some random output values.
>>
>> Why do I get something for 4/8 and not 7/8 is it because of the value of the
>> note and how we define a group? I cannot work out the logic to it.
>>
>> So explaining it for 4/4 makes no sense in that there has to be something
>> more fundamental in the explanation or it is a bug.
>>
>> Can you or anyone help?
>>
>> James
>>
>>
>>
>>
> Hi James,
>
> If I understand correctly:
>
> In general the time-signature says about a measure:
> how many beats are present and how long are those beats.
> P.e. in 3/8 there are 3 beats, each a 8th note long
>
> In LilyPond we add a structure (`beatStructure`) to those beats (`baseMoment`),
> reflecting the most common accents and determine the auto-beaming.
> p.e. 9/8 is structered as three groups of three 8th-notes.
> For beamings not according to `beatStructure` we set `beamExceptions`,
> p.e. for 3/8
>
> Now, MeasureGrouping may annotate groups of beats, _if_ groups are defined by
> `beatStructure`, see 9/8. Single beats will not cause any MeasureGrouping,
> see 3/8.
>
> Here some test-code:
>
> displaySomeContextPoperties =
> \context Timing
> \applyContext
>    #(lambda (ctx)
>      (newline)
>      (format #t
>        "timeSignatureFraction: ~a\n\tbeatStructure: ~a\n\tbaseMoment: ~a
>        \tbeamExceptions: ~a\n"
>        (ly:context-property ctx 'timeSignatureFraction)
>        (ly:context-property ctx 'beatStructure)
>        (ly:context-property ctx 'baseMoment)
>        (ly:context-property ctx 'beamExceptions)))
>
> \new Staff \with { \consists "Measure_grouping_engraver" }
> {
>    \time 3/8 \displaySomeContextPoperties \repeat unfold 3 { a'8 }
>    \time 4/8 \displaySomeContextPoperties \repeat unfold 4 { a'8 }
>    \time 5/8 \displaySomeContextPoperties \repeat unfold 5 { a'8 }
>    \time 6/8 \displaySomeContextPoperties \repeat unfold 6 { a'8 }
>    \time 7/8 \displaySomeContextPoperties \repeat unfold 7 { a'8 }
>    \time 8/8 \displaySomeContextPoperties \repeat unfold 8 { a'8 }
>    \time 9/8 \displaySomeContextPoperties \repeat unfold 9 { a'8 }
>    \time 1/4 \displaySomeContextPoperties \repeat unfold 2 { a'8 }
>    \time 2/4 \displaySomeContextPoperties \repeat unfold 4 { a'8 }
>    \time 3/4 \displaySomeContextPoperties \repeat unfold 6 { a'8 }
>    \time 4/4 \displaySomeContextPoperties \repeat unfold 8 { a'8 }
> }
>
> Terminal-output:
> timeSignatureFraction: (3 . 8)
>      beatStructure: (1 1 1)
>      baseMoment: #<Mom 1/8>
>            beamExceptions: ((end (1/8 3)))
>
> timeSignatureFraction: (4 . 8)
>      beatStructure: (2 2)
>      baseMoment: #<Mom 1/8>
>            beamExceptions: ()
>
> timeSignatureFraction: (5 . 8)
>      beatStructure: (3 2)
>      baseMoment: #<Mom 1/8>
>            beamExceptions: ()
>
> timeSignatureFraction: (6 . 8)
>      beatStructure: (3 3)
>      baseMoment: #<Mom 1/8>
>            beamExceptions: ()
>
> timeSignatureFraction: (7 . 8)
>      beatStructure: (1 1 1 1 1 1 1)
>      baseMoment: #<Mom 1/8>
>            beamExceptions: ()
>
> timeSignatureFraction: (8 . 8)
>      beatStructure: (3 3 2)
>      baseMoment: #<Mom 1/8>
>            beamExceptions: ()
>
> timeSignatureFraction: (9 . 8)
>      beatStructure: (3 3 3)
>      baseMoment: #<Mom 1/8>
>            beamExceptions: ()
>
> timeSignatureFraction: (1 . 4)
>      beatStructure: (1)
>      baseMoment: #<Mom 1/4>
>            beamExceptions: ()
> [
> timeSignatureFraction: (2 . 4)
>      beatStructure: (1 1)
>      baseMoment: #<Mom 1/4>
>            beamExceptions: ()
>
> timeSignatureFraction: (3 . 4)
>      beatStructure: (1 1 1)
>      baseMoment: #<Mom 1/4>
>            beamExceptions: ((end (1/8 6) (1/12 3 3 3)))
>
> timeSignatureFraction: (4 . 4)
>      beatStructure: (1 1 1 1)
>      baseMoment: #<Mom 1/4>
>            beamExceptions: ((end (1/8 4 4) (1/12 3 3 3 3)))
>
>
> So, MeasureGrouping does not happen for time-signatures where the
> `beatStructure` is a list of single beats, like 3/8 or 7/8 or 3/4 etc.
> At least not per default. One can try playing with `beatStructure` and probably
> `baseMoment` to get MeasureGrouping, though.
>
> See:
>
> \new Staff \with { \consists "Measure_grouping_engraver" }
> {
>    \time 3/8
>    a'8 8 8
>    \set Timing.beatStructure = #'(3)
>    8 8 8
> }
>
> Changing `beatStructure` and probably `baseMoment` ofcourse affects
> auto-beaming.
> We explain this already elsewhere, but probably we'll should mention
> it in the section for
> MeasureGrouping as well.
>
> HTH,
>    Harm
>
That does help a lot. Thank you.

I have on supplementary based on what you have said.

If you look at one of the original examples (I'll attach it here as
well), you can see engravings for 'single' notes (which may not be the
same as 'beats' hence my supplementary.

This is 4/8 time but the notes are crotchets (i.e. 4 not 8) so is this
effectively '2' beats in this context ?

thanks again.

James



_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond

Screenshot1_070818.png (18K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

Thomas Morley-2
2018-08-07 12:23 GMT+02:00 James Lowe <[hidden email]>:

>> timeSignatureFraction: (4 . 8)
>>      beatStructure: (2 2)
>>      baseMoment: #<Mom 1/8>
>>            beamExceptions: ()

>>

> I have on supplementary based on what you have said.
>
> If you look at one of the original examples (I'll attach it here as well),
> you can see engravings for 'single' notes (which may not be the same as
> 'beats' hence my supplementary.

Indeed, in 4/8 the beat (baseMoment) is 1/8 not 1/4

> This is 4/8 time but the notes are crotchets (i.e. 4 not 8) so is this
> effectively '2' beats in this context ?

True as well, beatStructure in 4/8 is '(2 2)

So below works as expected:

\new Staff \with { \consists "Measure_grouping_engraver" }
{
  \time 4/8
  a'4 4
}


Though, there is another not yet mentioned point.
MeasureGrouping also relies on the actual music rhythmically matching
the beatStructure.

\new Staff \with { \consists "Measure_grouping_engraver" }
{
  \time 4/8
  a'2
}
Will print only one bracket.

To get two brackets a second voice could be inserted, easily:
\new Staff \with { \consists "Measure_grouping_engraver" }
<<
    { \time 4/8 a'2 }
    { s4 s }
>>

No bug I'd say, but likely worth explaining.


Though, why is the a first bracket printed, even if no music
rhythmically matches the beatStructure?
See 3rd measure of:

\new Staff \with { \consists "Measure_grouping_engraver" }
{
  \time 4/8
  a'4 4
  a'2*7/4 a'8
  |
}

That I can't explain.
Others?


Cheers,
  Harm

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: Two issue with Measure_grouping_engraver

Simon Albrecht-2
On 07.08.2018 13:08, Thomas Morley wrote:
> MeasureGrouping also relies on the actual music rhythmically matching
> the beatStructure.
>
> \new Staff \with { \consists "Measure_grouping_engraver" }
> {
>    \time 4/8
>    a'2
> }
> Will print only one bracket.

That doesn’t seem helpful, does it? IIUC, Measure_grouping_engraver is
supposed to show the properties of the meter regardless of notes, so
that a conductor will have a visual aid in cases like

{
   \time 4/8
   a'2
   \time 5/8
   4.~ 4
   \time 6/8
   2.
   \time 3/4
   2.
}

Best, Simon

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond