8 Commits

Author SHA1 Message Date
Alex McLean
398533877c
Beat-oriented functionality (#976)
* annotate pure values with their value, allowing single mininotation values to maintain their labels as pure
* Don't use any 'patternified' arguments if they're all 'pure'
* allow pattern weights (roughly, beats-per-cycle) to be inferred where possible, including from mininotation and across many transformations (e.g. `fast` with a 'pure' factor)
* Add `beatCat`, similar to `timeCat` but funkier
* `silence` has a weight of 1, add alternative `nothing` with a weight of 0, and `gap` function with weight argument
* preserve weight across applicative operations (weight comes with the structure)
* add `stack` alternatives that take advantage of pattern weights to align patterns differently - `stackLeft`, `stackRight`, `stackCentre`, `stackExpand`, with `stackBy` with an argument for patterning the alignment.
2024-03-16 17:24:37 +00:00
Felix Roos
8304993481 fix: #194 2022-11-21 21:59:08 +01:00
Felix Roos
ff5d14fb63 can now have multiple triggers
+ Pattern.log now makes sense
2022-11-12 16:52:00 +01:00
alex
ee514ee8ba redo headers 2022-04-28 14:38:41 +01:00
Felix Roos
9e2e5ce581 log + drawLine 2022-04-23 23:28:43 +02:00
alex
f75da0e2e3 separate out strudel.mjs, make index.mjs aggregate module 2022-04-13 17:25:02 +01:00
alex
357b0ee467 First run at squeezeBind, ref #32 2022-04-12 10:53:22 +01:00
Felix Roos
6f60a3a1d5 start packaging 2022-03-25 14:39:25 +01:00