strudel/packages/core
2022-04-15 10:14:51 +01:00
..
examples add core examples 2022-03-29 22:16:36 +02:00
test separate out strudel.mjs, make index.mjs aggregate module 2022-04-13 17:25:02 +01:00
controls.mjs separate out strudel.mjs, make index.mjs aggregate module 2022-04-13 17:25:02 +01:00
euclid.mjs separate out strudel.mjs, make index.mjs aggregate module 2022-04-13 17:25:02 +01:00
fraction.mjs separate out strudel.mjs, make index.mjs aggregate module 2022-04-13 17:25:02 +01:00
gist.js start packaging 2022-03-25 14:39:25 +01:00
hap.mjs separate out strudel.mjs, make index.mjs aggregate module 2022-04-13 17:25:02 +01:00
index.mjs make separate signal module 2022-04-13 17:41:48 +01:00
package-lock.json remove ramda dep + update lockfiles 2022-04-11 22:37:28 +02:00
package.json separate out strudel.mjs, make index.mjs aggregate module 2022-04-13 17:25:02 +01:00
pattern.mjs export patternify 2022-04-13 23:58:44 +02:00
README.md add queryArc + update readme 2022-04-13 00:25:53 +02:00
signal.mjs First effort at rand() 2022-04-15 10:14:51 +01:00
speak.mjs fix import 2022-04-13 23:58:34 +02:00
state.mjs separate out strudel.mjs, make index.mjs aggregate module 2022-04-13 17:25:02 +01:00
timespan.mjs separate out strudel.mjs, make index.mjs aggregate module 2022-04-13 17:25:02 +01:00
util.mjs move some utilities to utils.mjs 2022-04-13 09:03:31 +01:00
value.mjs move some utilities to utils.mjs 2022-04-13 09:03:31 +01:00

@strudel.cycles/core

This package contains the bare essence of strudel.

Install

npm i @strudel.cycles/core --save

Example

import { sequence, State, TimeSpan } 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