Alex McLean 491c99c348
Mini-notation additions towards tidal compatibility (#926)
- `.` feet now work, e.g. `"a b c . d e . f"` is the same as `"[a b c] [d e] [f]"`
- `_` elongation now works, e.g. `"a _ _ b"` is the same as `"a@3 b"` (`"a @ @ b"` also works, like in tidal)
- standalone `!` now works, e.g. `"a ! ! b"` is the same as `"a!3 b"`

Reworks #47 and #49
Ref #30
2024-01-19 14:10:47 +00:00
..
2022-05-17 00:22:50 +02:00
2024-01-18 09:59:57 +01:00
2023-12-30 23:21:34 +01:00

@strudel/mini

This package contains the mini notation parser and pattern generator.

Install

npm i @strudel/mini --save

Example

import { mini } from '@strudel/mini';

const pattern = mini('a [b c*2]');

const events = pattern.firstCycle().map((e) => e.show());
console.log(events);

yields:

(0/1 -> 1/2, 0/1 -> 1/2, a)
(1/2 -> 3/4, 1/2 -> 3/4, b)
(3/4 -> 7/8, 3/4 -> 7/8, c)
(7/8 -> 1/1, 7/8 -> 1/1, c)

Play with @strudel/mini codesandbox

Mini Notation API

See "Mini Notation" in the Strudel Tutorial

Building the Parser

The parser [krill-parser.js] is generated from krill.pegjs using peggy. To generate the parser, run

npm run build:parser