58 Commits

Author SHA1 Message Date
Felix Roos
664a19a5c4 refactor: remove now redundant controls imports 2024-02-28 00:36:44 +01:00
Alex McLean
98b7859605
pick, pickmod, inhabit, inhabitmod (#921)
* the args for `pick` are now reversed as standard (old behaviour still supported to avoid breaking change)
* `pick` is also now a pattern method
* `pick` now also accepts a lookup table for pick-by-name as an alternative to pick-by-index from a list
* `inhabit` added with same behaviour as `pick`, except cycles from source patterns are squeezed into events of inhabited patterns
* Also some general doc tidying, sorry for the noise..
* There is also `pickmod` and `inhabitmod`, for wrapping indexes around rather than clamping them
2024-01-18 17:08:29 +00:00
Alex McLean
a8db707440
Revert "pick now accepts lookup tables, with alternate cycle squeezing behaviour as new inhabit function" (#920) 2024-01-18 17:04:26 +00:00
Alex McLean
873a412179
pick now accepts lookup tables, with alternate cycle squeezing behaviour as new inhabit function (#918)
- the args for `pick` are now reversed (breaking change!)
- `pick` is also now a method on the inhabited pattern
- `pick` now also accepts a lookup table
- `inhabit` added with same behaviour as `pick`, except cycles from source patterns are squeezed into events of inhabited patterns
- Also some general doc tidying, sorry for the noise..
- There is now also `pickmod` and `inhabitmod`, for wrapping indexes around rather than clamping them
2024-01-18 16:45:39 +00:00
Felix Roos
94fcea1040 codeformat 2023-12-30 23:21:34 +01:00
Bernhard Wagner
1bca05e349
FIXES: palindrome abc -> abccba (#831)
* FIXES: palindrome abc -> abccba

* FIXES: tests for palindrome

---------

Co-authored-by: Bernhard Wagner <gitcommit@nosuch.biz>
2023-12-05 10:15:13 +00:00
Alex McLean
9ceab0f294
Fix chunk, add fastChunk and repeatCycles (#712)
* Match behaviour of chunk with tidal, add fastChunk for old strudel behaviour. Also adds repeatCycles. fixes #689

* documentation
2023-11-01 21:22:33 +00:00
Alex McLean
2d5064bd5b
Reinstate slice and splice (#500)
Reinstate slice/splice, fixing up "unit" param using new global cps
2023-03-02 14:44:41 +00:00
Felix Roos
961bbf6f55 Revert "Another attempt at composable functions - WIP (#390)"
This reverts commit cbae3558969ec85c003c90a076ffeff6fa254bd4.
2023-02-27 15:20:49 +01:00
Alex McLean
7c367eb1e8
slice and splice (#466)
Implements `slice` and `splice` from tidal, intended for beat slicing
2023-02-22 11:51:31 +00:00
Alex McLean
fdb76867a7
weave and weaveWith (#465)
Added weave and weaveWith from tidal
2023-02-18 00:00:18 +00:00
Alex McLean
cbae355896
Another attempt at composable functions - WIP (#390)
Summary of changes:

- Made unary functions composable, including controls. So e.g. s("bd sd").every(3,fast(2).iter(4).n(4)) works the same as s("bd sd").every(3,x => x.fast(2).iter(4).n(4))
- Made operators/alignments composable too, so s("bd sd").every(3, set.squeeze.n(3, 4)) works
- Patterns are not treated as functions, so s("bd sd").every(3, n(5)) is an annoying runtime error. s("bd sd").every(3, set.n(5)) does work though.

Other minor changes:

- standardised alignment 'squeezeOut' as lowercase 'squeezeout'
- made firstCycleValues turn haps sorted in order of 'part'
2023-02-16 23:15:21 +00:00
Alex McLean
46f3b662a7
add pattern methods hurry, press and pressBy (#397) 2023-02-01 15:49:55 +00:00
Felix Roos
9731eb8c5b add ribbon + test + docs 2023-01-19 12:25:12 +01:00
Felix Roos
468ccc6288 add run + test + docs 2023-01-19 11:47:11 +01:00
Alex McLean
45842b1f05
Fix .out(), renaming webaudio's out() to webaudio() (#361)
* breaking test for out()

* rename webaudio's out() to webaudio(), fixes #359
2023-01-08 23:40:15 +00:00
Felix Roos
bf1ba6efc0 code format 2022-12-13 21:32:03 +01:00
Alex McLean
56424d29a3
.defragmentHaps() (#299) 2022-12-11 23:21:53 +00:00
Alex McLean
4340f024d3
Reorganise pattern.mjs with a 'toplevel first' regime (#286)
'toplevel first' regime
* loopAt has its optional cps parameter removed, with loopAtCps added for supporting that usage.
* rename bitlevel operations e.g. _and -> band

Co-authored-by: Felix Roos <flix91@gmail.com>
2022-12-10 14:39:03 +00:00
Alex McLean
f827201ee0
Switch 'operators' from .whatHow to .what.how, and make sure there are toplevel curried functions for all of them. Rename util.mod to util._mod, to make room for toplevel 'operator' of that name. (#285) 2022-12-07 19:07:55 +00:00
Alex McLean
e1a532500e
Tidying up core (#256)
* remove _ prefixes except for functions to be patternified
* categorise pattern methods
* experimental support for `.add.squeeze` and friends as alternative to `.addSqueeze`
* `every` is now an alias for `firstOf` with additional `lastOf` (which every will become an alias for next)
2022-11-22 08:51:25 +00:00
Felix Roos
e128b02da1 support object arithmetic 2022-11-01 21:31:39 +01:00
Alex McLean
24328ee8ae
Fix zero length queries WIP (#234)
* failing tests for zero-width queries

* support zero width timespans in splitArcs. Fixes one test, breaks a load more..

* fix fastGap
2022-10-29 23:23:10 +01:00
Alex McLean
5f381cf153
Patternify range (#231)
* patternify range

* patternify range

* fix test
2022-10-26 22:53:49 +01:00
Alex McLean
a5bf8f6732
fix fastgap for events that go across cycle boundaries (#225) 2022-10-06 21:35:45 +01:00
Alex McLean
513e0d748d
focus tweak for squeezeJoin - another go at fixing #216 (#221)
Fixes squeezeJoin, and in the process struct/keepif. fixes #216

Co-authored-by: Felix Roos <flix91@gmail.com>
2022-09-24 23:27:25 +01:00
Felix Roos
488ebf8f1a replace old tests
+ ignore tune test for now
+ add happy-dom
2022-08-06 12:22:11 +02:00
alex
aca3bea56b Implement inside/outside 2022-05-09 18:43:02 +01:00
alex
4fd843f8cf Implement brak() 2022-05-09 16:56:08 +02:00
alex
f8f744dd87 standardise on hap rather than event, especially in function names 2022-05-05 17:20:36 +01:00
alex
065f4191f0 Rename TrigZero -> Trigzero, + more composer tests 2022-05-01 17:34:47 +01:00
alex
41b7939dac More composer tests 2022-05-01 17:02:40 +01:00
alex
8cd3be6f67 Merge branch 'main' into reset 2022-04-29 16:50:50 +01:00
alex
86e8ed2ac0 Trying a different naming scheme for composers 2022-04-29 16:46:17 +01:00
alex
ee514ee8ba redo headers 2022-04-28 14:38:41 +01:00
alex
a4cacc079e Support subpattern sequences in stack like slowcat in ref #87 2022-04-23 09:47:12 +01:00
alex
9df20fcbc5 support catting subpatterns, fixes #87 2022-04-23 09:38:05 +01:00
alex
47717e872b test for negative time, ref #85 2022-04-22 17:06:15 +01:00
alex
8e441ecb19 fix striate: union -> set 2022-04-22 12:07:23 +01:00
alex
c305e82f5c Merge branch 'main' into pattern-composers 2022-04-22 11:52:36 +01:00
alex
87cfa30508 Extra test for ply (and prettify) 2022-04-22 11:51:41 +01:00
alex
974503160d squeezeflip, tests for add including failing one.. 2022-04-22 09:51:44 +01:00
alex
d9e3ff3256 Tests for set, setFlip and setSqueeze 2022-04-22 09:27:23 +01:00
alex
3ae6443c59 Tidy test and console logs 2022-04-21 14:17:28 +01:00
alex
1c6e3dd9a6 A couple of tests for continuous haps/patterns 2022-04-17 18:23:34 +01:00
alex
f75da0e2e3 separate out strudel.mjs, make index.mjs aggregate module 2022-04-13 17:25:02 +01:00
alex
ec3371c4ff Allow linger to accept non-fractions 2022-04-13 15:59:36 +01:00
alex
ad69fa19b6 Prettify 2022-04-13 08:38:08 +01:00
alex
3c31891774 Add range2 2022-04-12 17:53:40 +01:00
alex
0e5dc4f368 add range 2022-04-12 17:48:09 +01:00