mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-22 02:58:32 +00:00
Merge pull request #266 from tidalcycles/faster-fast
fix performance bottleneck
This commit is contained in:
commit
4cf412b93d
@ -74,7 +74,7 @@ const fraction = (n) => {
|
|||||||
-> those farey sequences turn out to make pattern querying ~20 times slower! always use strings!
|
-> those farey sequences turn out to make pattern querying ~20 times slower! always use strings!
|
||||||
-> still, some optimizations could be done: .mul .div .add .sub calls still use numbers
|
-> still, some optimizations could be done: .mul .div .add .sub calls still use numbers
|
||||||
*/
|
*/
|
||||||
n = String(n);
|
// n = String(n); // this is actually faster but imprecise...
|
||||||
}
|
}
|
||||||
return Fraction(n);
|
return Fraction(n);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -800,6 +800,7 @@ export class Pattern {
|
|||||||
* s("<bd sd> hh").fast(2) // s("[<bd sd> hh]*2")
|
* s("<bd sd> hh").fast(2) // s("[<bd sd> hh]*2")
|
||||||
*/
|
*/
|
||||||
_fast(factor) {
|
_fast(factor) {
|
||||||
|
factor = Fraction(factor);
|
||||||
const fastQuery = this.withQueryTime((t) => t.mul(factor));
|
const fastQuery = this.withQueryTime((t) => t.mul(factor));
|
||||||
return fastQuery.withHapTime((t) => t.div(factor));
|
return fastQuery.withHapTime((t) => t.div(factor));
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -807,36 +807,36 @@ exports[`runs examples > example "echo" example index 0 1`] = `
|
|||||||
[
|
[
|
||||||
"0/1 -> 1/2: {\\"s\\":\\"bd\\"}",
|
"0/1 -> 1/2: {\\"s\\":\\"bd\\"}",
|
||||||
"1/2 -> 1/1: {\\"s\\":\\"sd\\"}",
|
"1/2 -> 1/1: {\\"s\\":\\"sd\\"}",
|
||||||
"-4166666666666667/12500000000000000 -> 8333333333333333/50000000000000000: {\\"s\\":\\"sd\\"}",
|
"-1/3 -> 1/6: {\\"s\\":\\"sd\\"}",
|
||||||
"8333333333333333/50000000000000000 -> 8333333333333333/12500000000000000: {\\"s\\":\\"bd\\"}",
|
"1/6 -> 2/3: {\\"s\\":\\"bd\\"}",
|
||||||
"8333333333333333/12500000000000000 -> 7291666666666667/6250000000000000: {\\"s\\":\\"sd\\"}",
|
"2/3 -> 7/6: {\\"s\\":\\"sd\\"}",
|
||||||
"-4166666666666667/25000000000000000 -> 8333333333333333/25000000000000000: {\\"s\\":\\"sd\\"}",
|
"-1/6 -> 1/3: {\\"s\\":\\"sd\\"}",
|
||||||
"8333333333333333/25000000000000000 -> 5208333333333333/6250000000000000: {\\"s\\":\\"bd\\"}",
|
"1/3 -> 5/6: {\\"s\\":\\"bd\\"}",
|
||||||
"5208333333333333/6250000000000000 -> 8333333333333333/6250000000000000: {\\"s\\":\\"sd\\"}",
|
"5/6 -> 4/3: {\\"s\\":\\"sd\\"}",
|
||||||
"1/1 -> 3/2: {\\"s\\":\\"bd\\"}",
|
"1/1 -> 3/2: {\\"s\\":\\"bd\\"}",
|
||||||
"3/2 -> 2/1: {\\"s\\":\\"sd\\"}",
|
"3/2 -> 2/1: {\\"s\\":\\"sd\\"}",
|
||||||
"8333333333333333/12500000000000000 -> 7291666666666667/6250000000000000: {\\"s\\":\\"sd\\"}",
|
"2/3 -> 7/6: {\\"s\\":\\"sd\\"}",
|
||||||
"7291666666666667/6250000000000000 -> 5208333333333333/3125000000000000: {\\"s\\":\\"bd\\"}",
|
"7/6 -> 5/3: {\\"s\\":\\"bd\\"}",
|
||||||
"5208333333333333/3125000000000000 -> 6770833333333333/3125000000000000: {\\"s\\":\\"sd\\"}",
|
"5/3 -> 13/6: {\\"s\\":\\"sd\\"}",
|
||||||
"5208333333333333/6250000000000000 -> 8333333333333333/6250000000000000: {\\"s\\":\\"sd\\"}",
|
"5/6 -> 4/3: {\\"s\\":\\"sd\\"}",
|
||||||
"8333333333333333/6250000000000000 -> 5729166666666667/3125000000000000: {\\"s\\":\\"bd\\"}",
|
"4/3 -> 11/6: {\\"s\\":\\"bd\\"}",
|
||||||
"5729166666666667/3125000000000000 -> 7291666666666667/3125000000000000: {\\"s\\":\\"sd\\"}",
|
"11/6 -> 7/3: {\\"s\\":\\"sd\\"}",
|
||||||
"2/1 -> 5/2: {\\"s\\":\\"bd\\"}",
|
"2/1 -> 5/2: {\\"s\\":\\"bd\\"}",
|
||||||
"5/2 -> 3/1: {\\"s\\":\\"sd\\"}",
|
"5/2 -> 3/1: {\\"s\\":\\"sd\\"}",
|
||||||
"5208333333333333/3125000000000000 -> 6770833333333333/3125000000000000: {\\"s\\":\\"sd\\"}",
|
"5/3 -> 13/6: {\\"s\\":\\"sd\\"}",
|
||||||
"6770833333333333/3125000000000000 -> 8333333333333333/3125000000000000: {\\"s\\":\\"bd\\"}",
|
"13/6 -> 8/3: {\\"s\\":\\"bd\\"}",
|
||||||
"8333333333333333/3125000000000000 -> 4947916666666667/1562500000000000: {\\"s\\":\\"sd\\"}",
|
"8/3 -> 19/6: {\\"s\\":\\"sd\\"}",
|
||||||
"5729166666666667/3125000000000000 -> 7291666666666667/3125000000000000: {\\"s\\":\\"sd\\"}",
|
"11/6 -> 7/3: {\\"s\\":\\"sd\\"}",
|
||||||
"7291666666666667/3125000000000000 -> 8854166666666667/3125000000000000: {\\"s\\":\\"bd\\"}",
|
"7/3 -> 17/6: {\\"s\\":\\"bd\\"}",
|
||||||
"8854166666666667/3125000000000000 -> 5208333333333333/1562500000000000: {\\"s\\":\\"sd\\"}",
|
"17/6 -> 10/3: {\\"s\\":\\"sd\\"}",
|
||||||
"3/1 -> 7/2: {\\"s\\":\\"bd\\"}",
|
"3/1 -> 7/2: {\\"s\\":\\"bd\\"}",
|
||||||
"7/2 -> 4/1: {\\"s\\":\\"sd\\"}",
|
"7/2 -> 4/1: {\\"s\\":\\"sd\\"}",
|
||||||
"8333333333333333/3125000000000000 -> 4947916666666667/1562500000000000: {\\"s\\":\\"sd\\"}",
|
"8/3 -> 19/6: {\\"s\\":\\"sd\\"}",
|
||||||
"4947916666666667/1562500000000000 -> 5729166666666667/1562500000000000: {\\"s\\":\\"bd\\"}",
|
"19/6 -> 11/3: {\\"s\\":\\"bd\\"}",
|
||||||
"5729166666666667/1562500000000000 -> 6510416666666667/1562500000000000: {\\"s\\":\\"sd\\"}",
|
"11/3 -> 25/6: {\\"s\\":\\"sd\\"}",
|
||||||
"8854166666666667/3125000000000000 -> 5208333333333333/1562500000000000: {\\"s\\":\\"sd\\"}",
|
"17/6 -> 10/3: {\\"s\\":\\"sd\\"}",
|
||||||
"5208333333333333/1562500000000000 -> 5989583333333333/1562500000000000: {\\"s\\":\\"bd\\"}",
|
"10/3 -> 23/6: {\\"s\\":\\"bd\\"}",
|
||||||
"5989583333333333/1562500000000000 -> 6770833333333333/1562500000000000: {\\"s\\":\\"sd\\"}",
|
"23/6 -> 13/3: {\\"s\\":\\"sd\\"}",
|
||||||
]
|
]
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user