Add docstring and example
This commit is contained in:
parent
6e61f3cdb6
commit
d79d122f68
3 changed files with 45 additions and 0 deletions
|
|
@ -1256,6 +1256,20 @@ const ALIGNMENT_KEYS = ALIGNMENTS.map((how) => how.toLowerCase());
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the default [alignment](https://strudel.cc/technical-manual/alignment/) to be used by Strudel.
|
||||||
|
* The default default alignment is `in`, meaning that patterns to the left will (typically) dictate
|
||||||
|
* the event timings when combined with patterns to the right. By changing alignment to `out`, the opposite
|
||||||
|
* will happen. With `mix`, they will combine their event timings.
|
||||||
|
*
|
||||||
|
* Note that we say the _default_ alignment, because alignments can also be set explicitly with calls like
|
||||||
|
* `add.mix`, `set.squeeze`, etc.
|
||||||
|
*
|
||||||
|
* @param {string} name Default alignment to use. Options: 'in', 'out', 'mix', 'squeeze', 'squeezeout', 'reset', 'restart', 'poly'
|
||||||
|
* @example
|
||||||
|
* setDefaultAlignment('mix') // also try 'in', 'out', 'squeeze', etc.
|
||||||
|
* s("saw").vel("1 0.5").note("F A C E").delay("0 0.2 0.3")
|
||||||
|
*/
|
||||||
export const setDefaultAlignment = (alignment) => {
|
export const setDefaultAlignment = (alignment) => {
|
||||||
alignment = alignment?.toLowerCase();
|
alignment = alignment?.toLowerCase();
|
||||||
if (DEFAULT_ALIGNMENT !== alignment && ALIGNMENT_KEYS.includes(alignment)) {
|
if (DEFAULT_ALIGNMENT !== alignment && ALIGNMENT_KEYS.includes(alignment)) {
|
||||||
|
|
|
||||||
|
|
@ -10874,6 +10874,35 @@ exports[`runs examples > example "seqPLoop" example index 0 1`] = `
|
||||||
]
|
]
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`runs examples > example "setDefaultAlignment" example index 0 1`] = `
|
||||||
|
[
|
||||||
|
"[ 0/1 → 1/4 | s:saw velocity:1 note:F delay:0 ]",
|
||||||
|
"[ 1/4 → 1/3 | s:saw velocity:1 note:A delay:0 ]",
|
||||||
|
"[ 1/3 → 1/2 | s:saw velocity:1 note:A delay:0.2 ]",
|
||||||
|
"[ 1/2 → 2/3 | s:saw velocity:0.5 note:C delay:0.2 ]",
|
||||||
|
"[ 2/3 → 3/4 | s:saw velocity:0.5 note:C delay:0.3 ]",
|
||||||
|
"[ 3/4 → 1/1 | s:saw velocity:0.5 note:E delay:0.3 ]",
|
||||||
|
"[ 1/1 → 5/4 | s:saw velocity:1 note:F delay:0 ]",
|
||||||
|
"[ 5/4 → 4/3 | s:saw velocity:1 note:A delay:0 ]",
|
||||||
|
"[ 4/3 → 3/2 | s:saw velocity:1 note:A delay:0.2 ]",
|
||||||
|
"[ 3/2 → 5/3 | s:saw velocity:0.5 note:C delay:0.2 ]",
|
||||||
|
"[ 5/3 → 7/4 | s:saw velocity:0.5 note:C delay:0.3 ]",
|
||||||
|
"[ 7/4 → 2/1 | s:saw velocity:0.5 note:E delay:0.3 ]",
|
||||||
|
"[ 2/1 → 9/4 | s:saw velocity:1 note:F delay:0 ]",
|
||||||
|
"[ 9/4 → 7/3 | s:saw velocity:1 note:A delay:0 ]",
|
||||||
|
"[ 7/3 → 5/2 | s:saw velocity:1 note:A delay:0.2 ]",
|
||||||
|
"[ 5/2 → 8/3 | s:saw velocity:0.5 note:C delay:0.2 ]",
|
||||||
|
"[ 8/3 → 11/4 | s:saw velocity:0.5 note:C delay:0.3 ]",
|
||||||
|
"[ 11/4 → 3/1 | s:saw velocity:0.5 note:E delay:0.3 ]",
|
||||||
|
"[ 3/1 → 13/4 | s:saw velocity:1 note:F delay:0 ]",
|
||||||
|
"[ 13/4 → 10/3 | s:saw velocity:1 note:A delay:0 ]",
|
||||||
|
"[ 10/3 → 7/2 | s:saw velocity:1 note:A delay:0.2 ]",
|
||||||
|
"[ 7/2 → 11/3 | s:saw velocity:0.5 note:C delay:0.2 ]",
|
||||||
|
"[ 11/3 → 15/4 | s:saw velocity:0.5 note:C delay:0.3 ]",
|
||||||
|
"[ 15/4 → 4/1 | s:saw velocity:0.5 note:E delay:0.3 ]",
|
||||||
|
]
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`runs examples > example "setGainCurve" example index 0 1`] = `
|
exports[`runs examples > example "setGainCurve" example index 0 1`] = `
|
||||||
[
|
[
|
||||||
"[ 0/1 → 1/4 | s:bd gain:0.5 ]",
|
"[ 0/1 → 1/4 | s:bd gain:0.5 ]",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
import { afterEach } from 'vitest';
|
import { afterEach } from 'vitest';
|
||||||
import { useRNG } from './packages/core/signal.mjs';
|
import { useRNG } from './packages/core/signal.mjs';
|
||||||
|
import { setDefaultAlignment } from './packages/core/pattern.mjs';
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
// Avoid bleed between tests
|
// Avoid bleed between tests
|
||||||
useRNG('legacy');
|
useRNG('legacy');
|
||||||
|
setDefaultAlignment('in');
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue