mirror of
https://codeberg.org/uzu/strudel
synced 2026-10-11 10:49:05 -04:00
enable stack variants to be chained
This commit is contained in:
@@ -850,6 +850,22 @@ export class Pattern {
|
||||
return stack(this, ...pats);
|
||||
}
|
||||
|
||||
stackLeft(...pats) {
|
||||
return stackLeft(this, ...pats);
|
||||
}
|
||||
|
||||
stackRight(...pats) {
|
||||
return stackRight(this, ...pats);
|
||||
}
|
||||
|
||||
stackCentre(...pats) {
|
||||
return stackCentre(this, ...pats);
|
||||
}
|
||||
|
||||
stackRepeat(...pats) {
|
||||
return stackRepeat(this, ...pats);
|
||||
}
|
||||
|
||||
sequence(...pats) {
|
||||
return sequence(this, ...pats);
|
||||
}
|
||||
@@ -1527,6 +1543,9 @@ function _stackWith(func, pats) {
|
||||
* @return {Pattern}
|
||||
* @example
|
||||
* stackLeft("0 1 2 3", "3 4", "[4 5 6] 7 8 9 10").scale("c:minor").note()
|
||||
* @example
|
||||
* // chainable
|
||||
* "0 1 2 3".stackLeft("3 4", "[4 5 6] 7 8 9 10").scale("c:minor").note()
|
||||
*/
|
||||
export function stackLeft(...pats) {
|
||||
return _stackWith(
|
||||
@@ -1543,6 +1562,9 @@ export function stackLeft(...pats) {
|
||||
* @return {Pattern}
|
||||
* @example
|
||||
* stackRight("0 1 2 3", "3 4", "[4 5 6] 7 8 9 10").scale("c:minor").note()
|
||||
* @example
|
||||
* // chainable
|
||||
* "0 1 2 3".stackRight("3 4", "[4 5 6] 7 8 9 10").scale("c:minor").note()
|
||||
*/
|
||||
export function stackRight(...pats) {
|
||||
return _stackWith(
|
||||
@@ -1559,6 +1581,9 @@ export function stackRight(...pats) {
|
||||
* @return {Pattern}
|
||||
* @example
|
||||
* stackCentre("0 1 2 3", "3 4", "[4 5 6] 7 8 9 10").scale("c:minor").note()
|
||||
* @example
|
||||
* // chainable
|
||||
* "0 1 2 3".stackCentre("3 4", "[4 5 6] 7 8 9 10").scale("c:minor").note()
|
||||
*/
|
||||
export function stackCentre(...pats) {
|
||||
return _stackWith(
|
||||
@@ -1585,6 +1610,9 @@ export function stackCenter(pats) {
|
||||
* @return {Pattern}
|
||||
* @example
|
||||
* stackRepeat("0 1 2 3", "3 4", "[4 5 6] 7 8 9 10").scale("c:minor").note()
|
||||
* @example
|
||||
* // chainable
|
||||
* "0 1 2 3".stackRepeat("3 4", "[4 5 6] 7 8 9 10").scale("c:minor").note()
|
||||
*/
|
||||
export function stackRepeat(...pats) {
|
||||
return stackBy(reify('repeat'), ...pats);
|
||||
|
||||
@@ -12751,6 +12751,63 @@ exports[`runs examples > example "stackCentre" example index 0 1`] = `
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "stackCentre" example index 1 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/15 | note:G3 ]",
|
||||
"[ 1/15 → 2/15 | note:Ab3 ]",
|
||||
"[ 1/10 → 3/10 | note:C3 ]",
|
||||
"[ 2/15 → 1/5 | note:Bb3 ]",
|
||||
"[ 1/5 → 2/5 | note:C4 ]",
|
||||
"[ 3/10 → 1/2 | note:D3 ]",
|
||||
"[ 3/10 → 1/2 | note:F3 ]",
|
||||
"[ 2/5 → 3/5 | note:D4 ]",
|
||||
"[ 1/2 → 7/10 | note:Eb3 ]",
|
||||
"[ 1/2 → 7/10 | note:G3 ]",
|
||||
"[ 3/5 → 4/5 | note:Eb4 ]",
|
||||
"[ 7/10 → 9/10 | note:F3 ]",
|
||||
"[ 4/5 → 1/1 | note:F4 ]",
|
||||
"[ 1/1 → 16/15 | note:G3 ]",
|
||||
"[ 16/15 → 17/15 | note:Ab3 ]",
|
||||
"[ 11/10 → 13/10 | note:C3 ]",
|
||||
"[ 17/15 → 6/5 | note:Bb3 ]",
|
||||
"[ 6/5 → 7/5 | note:C4 ]",
|
||||
"[ 13/10 → 3/2 | note:D3 ]",
|
||||
"[ 13/10 → 3/2 | note:F3 ]",
|
||||
"[ 7/5 → 8/5 | note:D4 ]",
|
||||
"[ 3/2 → 17/10 | note:Eb3 ]",
|
||||
"[ 3/2 → 17/10 | note:G3 ]",
|
||||
"[ 8/5 → 9/5 | note:Eb4 ]",
|
||||
"[ 17/10 → 19/10 | note:F3 ]",
|
||||
"[ 9/5 → 2/1 | note:F4 ]",
|
||||
"[ 2/1 → 31/15 | note:G3 ]",
|
||||
"[ 31/15 → 32/15 | note:Ab3 ]",
|
||||
"[ 21/10 → 23/10 | note:C3 ]",
|
||||
"[ 32/15 → 11/5 | note:Bb3 ]",
|
||||
"[ 11/5 → 12/5 | note:C4 ]",
|
||||
"[ 23/10 → 5/2 | note:D3 ]",
|
||||
"[ 23/10 → 5/2 | note:F3 ]",
|
||||
"[ 12/5 → 13/5 | note:D4 ]",
|
||||
"[ 5/2 → 27/10 | note:Eb3 ]",
|
||||
"[ 5/2 → 27/10 | note:G3 ]",
|
||||
"[ 13/5 → 14/5 | note:Eb4 ]",
|
||||
"[ 27/10 → 29/10 | note:F3 ]",
|
||||
"[ 14/5 → 3/1 | note:F4 ]",
|
||||
"[ 3/1 → 46/15 | note:G3 ]",
|
||||
"[ 46/15 → 47/15 | note:Ab3 ]",
|
||||
"[ 31/10 → 33/10 | note:C3 ]",
|
||||
"[ 47/15 → 16/5 | note:Bb3 ]",
|
||||
"[ 16/5 → 17/5 | note:C4 ]",
|
||||
"[ 33/10 → 7/2 | note:D3 ]",
|
||||
"[ 33/10 → 7/2 | note:F3 ]",
|
||||
"[ 17/5 → 18/5 | note:D4 ]",
|
||||
"[ 7/2 → 37/10 | note:Eb3 ]",
|
||||
"[ 7/2 → 37/10 | note:G3 ]",
|
||||
"[ 18/5 → 19/5 | note:Eb4 ]",
|
||||
"[ 37/10 → 39/10 | note:F3 ]",
|
||||
"[ 19/5 → 4/1 | note:F4 ]",
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "stackLeft" example index 0 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/15 | note:G3 ]",
|
||||
@@ -12808,6 +12865,63 @@ exports[`runs examples > example "stackLeft" example index 0 1`] = `
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "stackLeft" example index 1 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/15 | note:G3 ]",
|
||||
"[ 0/1 → 1/5 | note:C3 ]",
|
||||
"[ 0/1 → 1/5 | note:F3 ]",
|
||||
"[ 1/15 → 2/15 | note:Ab3 ]",
|
||||
"[ 2/15 → 1/5 | note:Bb3 ]",
|
||||
"[ 1/5 → 2/5 | note:D3 ]",
|
||||
"[ 1/5 → 2/5 | note:G3 ]",
|
||||
"[ 1/5 → 2/5 | note:C4 ]",
|
||||
"[ 2/5 → 3/5 | note:Eb3 ]",
|
||||
"[ 2/5 → 3/5 | note:D4 ]",
|
||||
"[ 3/5 → 4/5 | note:F3 ]",
|
||||
"[ 3/5 → 4/5 | note:Eb4 ]",
|
||||
"[ 4/5 → 1/1 | note:F4 ]",
|
||||
"[ 1/1 → 16/15 | note:G3 ]",
|
||||
"[ 1/1 → 6/5 | note:C3 ]",
|
||||
"[ 1/1 → 6/5 | note:F3 ]",
|
||||
"[ 16/15 → 17/15 | note:Ab3 ]",
|
||||
"[ 17/15 → 6/5 | note:Bb3 ]",
|
||||
"[ 6/5 → 7/5 | note:D3 ]",
|
||||
"[ 6/5 → 7/5 | note:G3 ]",
|
||||
"[ 6/5 → 7/5 | note:C4 ]",
|
||||
"[ 7/5 → 8/5 | note:Eb3 ]",
|
||||
"[ 7/5 → 8/5 | note:D4 ]",
|
||||
"[ 8/5 → 9/5 | note:F3 ]",
|
||||
"[ 8/5 → 9/5 | note:Eb4 ]",
|
||||
"[ 9/5 → 2/1 | note:F4 ]",
|
||||
"[ 2/1 → 31/15 | note:G3 ]",
|
||||
"[ 2/1 → 11/5 | note:C3 ]",
|
||||
"[ 2/1 → 11/5 | note:F3 ]",
|
||||
"[ 31/15 → 32/15 | note:Ab3 ]",
|
||||
"[ 32/15 → 11/5 | note:Bb3 ]",
|
||||
"[ 11/5 → 12/5 | note:D3 ]",
|
||||
"[ 11/5 → 12/5 | note:G3 ]",
|
||||
"[ 11/5 → 12/5 | note:C4 ]",
|
||||
"[ 12/5 → 13/5 | note:Eb3 ]",
|
||||
"[ 12/5 → 13/5 | note:D4 ]",
|
||||
"[ 13/5 → 14/5 | note:F3 ]",
|
||||
"[ 13/5 → 14/5 | note:Eb4 ]",
|
||||
"[ 14/5 → 3/1 | note:F4 ]",
|
||||
"[ 3/1 → 46/15 | note:G3 ]",
|
||||
"[ 3/1 → 16/5 | note:C3 ]",
|
||||
"[ 3/1 → 16/5 | note:F3 ]",
|
||||
"[ 46/15 → 47/15 | note:Ab3 ]",
|
||||
"[ 47/15 → 16/5 | note:Bb3 ]",
|
||||
"[ 16/5 → 17/5 | note:D3 ]",
|
||||
"[ 16/5 → 17/5 | note:G3 ]",
|
||||
"[ 16/5 → 17/5 | note:C4 ]",
|
||||
"[ 17/5 → 18/5 | note:Eb3 ]",
|
||||
"[ 17/5 → 18/5 | note:D4 ]",
|
||||
"[ 18/5 → 19/5 | note:F3 ]",
|
||||
"[ 18/5 → 19/5 | note:Eb4 ]",
|
||||
"[ 19/5 → 4/1 | note:F4 ]",
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "stackRepeat" example index 0 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/15 | note:G3 ]",
|
||||
@@ -12881,6 +12995,79 @@ exports[`runs examples > example "stackRepeat" example index 0 1`] = `
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "stackRepeat" example index 1 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/15 | note:G3 ]",
|
||||
"[ 0/1 → 1/5 | note:C3 ]",
|
||||
"[ 0/1 → 1/5 | note:F3 ]",
|
||||
"[ 1/15 → 2/15 | note:Ab3 ]",
|
||||
"[ 2/15 → 1/5 | note:Bb3 ]",
|
||||
"[ 1/5 → 2/5 | note:D3 ]",
|
||||
"[ 1/5 → 2/5 | note:G3 ]",
|
||||
"[ 1/5 → 2/5 | note:C4 ]",
|
||||
"[ 2/5 → 3/5 | note:Eb3 ]",
|
||||
"[ 2/5 → 3/5 | note:F3 ]",
|
||||
"[ 2/5 → 3/5 | note:D4 ]",
|
||||
"[ 3/5 → 4/5 | note:F3 ]",
|
||||
"[ 3/5 → 4/5 | note:G3 ]",
|
||||
"[ 3/5 → 4/5 | note:Eb4 ]",
|
||||
"[ 4/5 → 1/1 | note:C3 ]",
|
||||
"[ 4/5 → 1/1 | note:F3 ]",
|
||||
"[ 4/5 → 1/1 | note:F4 ]",
|
||||
"[ 1/1 → 16/15 | note:G3 ]",
|
||||
"[ 1/1 → 6/5 | note:D3 ]",
|
||||
"[ 1/1 → 6/5 | note:G3 ]",
|
||||
"[ 16/15 → 17/15 | note:Ab3 ]",
|
||||
"[ 17/15 → 6/5 | note:Bb3 ]",
|
||||
"[ 6/5 → 7/5 | note:Eb3 ]",
|
||||
"[ 6/5 → 7/5 | note:F3 ]",
|
||||
"[ 6/5 → 7/5 | note:C4 ]",
|
||||
"[ 7/5 → 8/5 | note:F3 ]",
|
||||
"[ 7/5 → 8/5 | note:G3 ]",
|
||||
"[ 7/5 → 8/5 | note:D4 ]",
|
||||
"[ 8/5 → 9/5 | note:C3 ]",
|
||||
"[ 8/5 → 9/5 | note:F3 ]",
|
||||
"[ 8/5 → 9/5 | note:Eb4 ]",
|
||||
"[ 9/5 → 2/1 | note:D3 ]",
|
||||
"[ 9/5 → 2/1 | note:G3 ]",
|
||||
"[ 9/5 → 2/1 | note:F4 ]",
|
||||
"[ 2/1 → 31/15 | note:G3 ]",
|
||||
"[ 2/1 → 11/5 | note:Eb3 ]",
|
||||
"[ 2/1 → 11/5 | note:F3 ]",
|
||||
"[ 31/15 → 32/15 | note:Ab3 ]",
|
||||
"[ 32/15 → 11/5 | note:Bb3 ]",
|
||||
"[ 11/5 → 12/5 | note:F3 ]",
|
||||
"[ 11/5 → 12/5 | note:G3 ]",
|
||||
"[ 11/5 → 12/5 | note:C4 ]",
|
||||
"[ 12/5 → 13/5 | note:C3 ]",
|
||||
"[ 12/5 → 13/5 | note:F3 ]",
|
||||
"[ 12/5 → 13/5 | note:D4 ]",
|
||||
"[ 13/5 → 14/5 | note:D3 ]",
|
||||
"[ 13/5 → 14/5 | note:G3 ]",
|
||||
"[ 13/5 → 14/5 | note:Eb4 ]",
|
||||
"[ 14/5 → 3/1 | note:Eb3 ]",
|
||||
"[ 14/5 → 3/1 | note:F3 ]",
|
||||
"[ 14/5 → 3/1 | note:F4 ]",
|
||||
"[ 3/1 → 46/15 | note:G3 ]",
|
||||
"[ 3/1 → 16/5 | note:F3 ]",
|
||||
"[ 3/1 → 16/5 | note:G3 ]",
|
||||
"[ 46/15 → 47/15 | note:Ab3 ]",
|
||||
"[ 47/15 → 16/5 | note:Bb3 ]",
|
||||
"[ 16/5 → 17/5 | note:C3 ]",
|
||||
"[ 16/5 → 17/5 | note:F3 ]",
|
||||
"[ 16/5 → 17/5 | note:C4 ]",
|
||||
"[ 17/5 → 18/5 | note:D3 ]",
|
||||
"[ 17/5 → 18/5 | note:G3 ]",
|
||||
"[ 17/5 → 18/5 | note:D4 ]",
|
||||
"[ 18/5 → 19/5 | note:Eb3 ]",
|
||||
"[ 18/5 → 19/5 | note:F3 ]",
|
||||
"[ 18/5 → 19/5 | note:Eb4 ]",
|
||||
"[ 19/5 → 4/1 | note:F3 ]",
|
||||
"[ 19/5 → 4/1 | note:G3 ]",
|
||||
"[ 19/5 → 4/1 | note:F4 ]",
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "stackRight" example index 0 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/15 | note:G3 ]",
|
||||
@@ -12938,6 +13125,63 @@ exports[`runs examples > example "stackRight" example index 0 1`] = `
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "stackRight" example index 1 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/15 | note:G3 ]",
|
||||
"[ 1/15 → 2/15 | note:Ab3 ]",
|
||||
"[ 2/15 → 1/5 | note:Bb3 ]",
|
||||
"[ 1/5 → 2/5 | note:C3 ]",
|
||||
"[ 1/5 → 2/5 | note:C4 ]",
|
||||
"[ 2/5 → 3/5 | note:D3 ]",
|
||||
"[ 2/5 → 3/5 | note:D4 ]",
|
||||
"[ 3/5 → 4/5 | note:Eb3 ]",
|
||||
"[ 3/5 → 4/5 | note:F3 ]",
|
||||
"[ 3/5 → 4/5 | note:Eb4 ]",
|
||||
"[ 4/5 → 1/1 | note:F3 ]",
|
||||
"[ 4/5 → 1/1 | note:G3 ]",
|
||||
"[ 4/5 → 1/1 | note:F4 ]",
|
||||
"[ 1/1 → 16/15 | note:G3 ]",
|
||||
"[ 16/15 → 17/15 | note:Ab3 ]",
|
||||
"[ 17/15 → 6/5 | note:Bb3 ]",
|
||||
"[ 6/5 → 7/5 | note:C3 ]",
|
||||
"[ 6/5 → 7/5 | note:C4 ]",
|
||||
"[ 7/5 → 8/5 | note:D3 ]",
|
||||
"[ 7/5 → 8/5 | note:D4 ]",
|
||||
"[ 8/5 → 9/5 | note:Eb3 ]",
|
||||
"[ 8/5 → 9/5 | note:F3 ]",
|
||||
"[ 8/5 → 9/5 | note:Eb4 ]",
|
||||
"[ 9/5 → 2/1 | note:F3 ]",
|
||||
"[ 9/5 → 2/1 | note:G3 ]",
|
||||
"[ 9/5 → 2/1 | note:F4 ]",
|
||||
"[ 2/1 → 31/15 | note:G3 ]",
|
||||
"[ 31/15 → 32/15 | note:Ab3 ]",
|
||||
"[ 32/15 → 11/5 | note:Bb3 ]",
|
||||
"[ 11/5 → 12/5 | note:C3 ]",
|
||||
"[ 11/5 → 12/5 | note:C4 ]",
|
||||
"[ 12/5 → 13/5 | note:D3 ]",
|
||||
"[ 12/5 → 13/5 | note:D4 ]",
|
||||
"[ 13/5 → 14/5 | note:Eb3 ]",
|
||||
"[ 13/5 → 14/5 | note:F3 ]",
|
||||
"[ 13/5 → 14/5 | note:Eb4 ]",
|
||||
"[ 14/5 → 3/1 | note:F3 ]",
|
||||
"[ 14/5 → 3/1 | note:G3 ]",
|
||||
"[ 14/5 → 3/1 | note:F4 ]",
|
||||
"[ 3/1 → 46/15 | note:G3 ]",
|
||||
"[ 46/15 → 47/15 | note:Ab3 ]",
|
||||
"[ 47/15 → 16/5 | note:Bb3 ]",
|
||||
"[ 16/5 → 17/5 | note:C3 ]",
|
||||
"[ 16/5 → 17/5 | note:C4 ]",
|
||||
"[ 17/5 → 18/5 | note:D3 ]",
|
||||
"[ 17/5 → 18/5 | note:D4 ]",
|
||||
"[ 18/5 → 19/5 | note:Eb3 ]",
|
||||
"[ 18/5 → 19/5 | note:F3 ]",
|
||||
"[ 18/5 → 19/5 | note:Eb4 ]",
|
||||
"[ 19/5 → 4/1 | note:F3 ]",
|
||||
"[ 19/5 → 4/1 | note:G3 ]",
|
||||
"[ 19/5 → 4/1 | note:F4 ]",
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "stepalt" example index 0 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/5 | s:bd ]",
|
||||
|
||||
Reference in New Issue
Block a user