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
..
2022-11-06 19:36:01 +01:00
2023-01-19 11:59:43 +01:00
2022-12-26 22:13:41 +01:00
2023-01-13 12:03:34 +01:00
2022-11-03 14:47:27 +01:00
2023-01-15 23:11:49 +01:00
2023-01-28 20:31:23 +01:00
2022-06-18 23:06:21 +02:00
2022-12-13 21:32:03 +01:00
2022-12-31 16:23:45 +01:00
2022-12-19 23:23:31 +01:00
2023-01-29 00:14:07 +01:00
2023-01-13 13:00:11 +01:00
2023-01-29 23:27:35 +01:00
2023-01-19 11:47:11 +01:00
2022-12-10 22:56:08 +01:00
2022-04-28 14:38:41 +01:00
2022-11-13 02:00:09 +01:00
2022-12-13 21:32:03 +01:00
2023-01-28 21:00:42 +01:00
2023-01-28 22:05:11 +01:00

@strudel.cycles/core

This package contains the bare essence of strudel.

Install

npm i @strudel.cycles/core --save

Example

import { sequence } from '@strudel.cycles/core';

const pattern = sequence('a', ['b', 'c']);

const events = pattern.queryArc(0, 1);

const spans = events.map(
  (event) => `${event.value}: ${event.whole.begin.toFraction()} - ${event.whole.end.toFraction()} `,
);

yields:

a: 0 - 1/2
b: 1/2 - 3/4
c: 3/4 - 1
a: 1 - 3/2
b: 3/2 - 7/4
c: 7/4 - 2