102 Commits

Author SHA1 Message Date
Alex McLean
ce9d23049a
Polish, rename, and document stepwise functions (#1262)
* polish, rename, and document stepwise functions: `pace`, `take`, `drop`, `expand`, `contract`, `repeat`, `zip`, `grow`, `shrink`, and `tour`
2025-02-02 20:26:44 +00:00
Felix Roos
81e97a5643
Merge branch 'main' into get-control 2025-01-29 15:31:33 +01:00
Alex McLean
638e247a5f
Revert "Fix sometimes (#1243)" (#1267)
This reverts commit 00b0341839afae84b1ca7a06a14b91721a17eadc.
2025-01-28 00:00:03 +01:00
Felix Roos
773420fd65 add "as" function + getControlName 2025-01-18 22:27:29 +01:00
Felix Roos
f61916fffa
Merge pull request #1226 from heerman/binary
Add binary and binaryN
2025-01-17 19:27:00 +01:00
Alex McLean
00b0341839
Fix sometimes (#1243)
* test and fix for sometimes bug
2025-01-16 11:18:33 +00:00
Luke Heerman
34f4afad01 Rework binary to binaryN 2024-12-10 23:51:32 -05:00
Luke Heerman
947b263b9c Add tests 2024-12-10 23:51:32 -05:00
Alex McLean
6e496b7a4a
Fix loop at tactus (#1145)
* fix loopAt tactus
2024-07-27 11:02:38 +02:00
Alex McLean
a4bd0ae100
Chop chop (#1078)
* failing test

* support chopping chops
2024-06-24 17:19:22 +01:00
Alex McLean
283a071c86
Fix bug in Fraction.lcm (#1133)
* bugfix lcm
2024-06-18 22:58:08 +01:00
Alex McLean
91bb0a1d36
Add calculateTactus() for turning off calculation of tactus in (#1081)
core functions.
Also while I'm here stop fast/slow from manipulating tactus.
2024-04-29 11:36:10 +01:00
Alex McLean
bbf8577f85
More tactus tidying (#1071)
* preserve tactus for register (only non-formatting change is adding args to register)
* support undefined tactus values
2024-04-26 14:12:30 +01:00
Alex McLean
a189626e8b
Fix stepjoin (#1067)
* sort fractions properly - fixes #1066
2024-04-23 22:37:21 +01:00
Alex McLean
0a3694fb82
Stepwise functions from Tidal (#1060)
* rename new stepwise functions to match tidal, adding s_expand and s_contract
* created a `stepJoin` for stepwise patternification
2024-04-21 21:17:07 +01:00
Alex McLean
ebeefc0ac4
More experimental step functions: stepwax, stepwane, steptaper, steptour and taperlist (#1042)
* group tactus-oriented functions
* add stepwax, stepwane, steptaper and steptour
* taperlist
2024-04-08 09:46:18 +01:00
Felix Roos
12d8cdff92 remove dangerous arithmetic feature 2024-03-29 16:58:34 +01:00
Alex McLean
2fd2bdba60
Feature: tactus marking (#1021)
* rename `beat` option to `stackBy` to `repeat`
* fix parse error reporting
* rename `weight` to `tactus` (it might in the end be pulse, step, or tap)
* tactus marking with ^
* and add some tests
2024-03-27 12:06:05 +00:00
Felix Roos
c2ef90d67c rename trig -> reset, trigzero -> restart 2024-03-23 11:22:30 +01:00
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
4f55144232 nested controls poc 2024-03-01 00:31:33 +01:00
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
Felix Roos
190fe37a9f move solmization logic from midi2note to sol2note 2023-06-11 19:55:24 +02:00
Daria Cotocu
b63f4eb503 Update solmization.test.js 2023-05-24 18:58:11 +01:00
Daria Cotocu
cd7bc09f9c Update solmization.test.js 2023-05-24 18:43:24 +01:00
Daria Cotocu
ccf775e976 Format code 2023-05-24 17:57:05 +01:00
Daria Cotocu
811346e83d Solmization added 2023-05-24 17:24:34 +01:00
Felix Roos
ba35a81e9b - feat: add freq support to gm soundfonts
- refactor: toMidi -> noteToMidi
- refactor: fromMidi -> midiToFreq
2023-03-23 10:18:24 +01:00
Alex McLean
bf72908dc9
Support list syntax in mininotation (#512)
fixes #504

* support list syntax in mininotation
* support compound controls
* remove redundant : splitting of s/n and note/n from webaudio
* patternable scale names
2023-03-04 18:06:18 +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
d1d9b37ec7 supper notes without octave 2022-12-23 23:01:07 +01:00
Felix Roos
bf1ba6efc0 code format 2022-12-13 21:32:03 +01:00
Felix Roos
df73ce8a60 add freq support to sampler 2022-12-12 20:41:09 +01:00
Alex McLean
56424d29a3
.defragmentHaps() (#299) 2022-12-11 23:21:53 +00:00
Felix Roos
ef427758da
Merge pull request #287 from tidalcycles/numeral-union
can now add bare numbers to numeral object props
2022-12-11 21:44:16 +01:00
Felix Roos
def6bbf683 add test 2022-12-11 21:43:05 +01:00