Dynamic accent patterns in Tidal?

this concept does not exist. an object (denoted by an expression) of type Pattern a does not have a size.

[EDIT] the above is my standard answer over many years now, but it seems that the world is changing ... viz.

ghci> :i Pattern
type Pattern :: * -> *
data Pattern a
  = Pattern {query :: State -> [Event a],
             steps :: Maybe Rational,
             pureValue :: Maybe a}
  	-- Defined in ‘Sound.Tidal.Pattern’

ghci> steps $ s "[bd sd [~ bd] sd, hc*8] " 
Just (4 % 1)

so there is some concept of size (number of steps) now? But what is it?

[INNARDS] You could still encode "at the start", "in the middle", relative to the unit interval of time. But - to model "at the start only", we would need zero-widt time invervals. For the complement ("not at the start"), we need (left) open intervals. It seems Arc s e currently means right-open (including s, excluding e).

So here's a project: add the missing interval types (three extra constructors for ArcF, so we get open/closed at left/right. Oh, and we should also have unbounded left/right.

This seems to be exactly it: https://hackage-content.haskell.org/package/data-interval-2.1.2/docs/Data-Interval.html#t:Interval ("provides both open and closed intervals and is intended to be used with Rational")

[EDIT] see https://codeberg.org/uzu/tidal/issues/1259