pinobatch/pently

Add bar checks to patterns

Closed this issue · 1 comments

LilyPond has a rhythm error detection feature called bar check. Its | command emits a diagnostic if the musical time so far is not a multiple of one measure as defined in a song's time signature.

Like a song (see pickup command), a pattern in Pently may have a pickup, or part that starts unaligned with a bar line. Thus a pattern's first bar check would establish the amount of pickup instead of emitting a diagnostic.

Because a pattern can be defined outside a song, test cases will need to verify that setting a time signature outside a song works:

  • time and scale within a pattern should set the pattern's own rhythm context.
  • time and scale at score level (outside a song) should set the rhythm context for following score-level patterns.

I decided against the "pattern's first bar check sets pickup" rule, instead overloading the pickup keyword to apply to an open pattern.