mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-11 13:48:34 +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!
|
||||
-> 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);
|
||||
};
|
||||
|
||||
@ -800,6 +800,7 @@ export class Pattern {
|
||||
* s("<bd sd> hh").fast(2) // s("[<bd sd> hh]*2")
|
||||
*/
|
||||
_fast(factor) {
|
||||
factor = Fraction(factor);
|
||||
const fastQuery = this.withQueryTime((t) => t.mul(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\\"}",
|
||||
"1/2 -> 1/1: {\\"s\\":\\"sd\\"}",
|
||||
"-4166666666666667/12500000000000000 -> 8333333333333333/50000000000000000: {\\"s\\":\\"sd\\"}",
|
||||
"8333333333333333/50000000000000000 -> 8333333333333333/12500000000000000: {\\"s\\":\\"bd\\"}",
|
||||
"8333333333333333/12500000000000000 -> 7291666666666667/6250000000000000: {\\"s\\":\\"sd\\"}",
|
||||
"-4166666666666667/25000000000000000 -> 8333333333333333/25000000000000000: {\\"s\\":\\"sd\\"}",
|
||||
"8333333333333333/25000000000000000 -> 5208333333333333/6250000000000000: {\\"s\\":\\"bd\\"}",
|
||||
"5208333333333333/6250000000000000 -> 8333333333333333/6250000000000000: {\\"s\\":\\"sd\\"}",
|
||||
"-1/3 -> 1/6: {\\"s\\":\\"sd\\"}",
|
||||
"1/6 -> 2/3: {\\"s\\":\\"bd\\"}",
|
||||
"2/3 -> 7/6: {\\"s\\":\\"sd\\"}",
|
||||
"-1/6 -> 1/3: {\\"s\\":\\"sd\\"}",
|
||||
"1/3 -> 5/6: {\\"s\\":\\"bd\\"}",
|
||||
"5/6 -> 4/3: {\\"s\\":\\"sd\\"}",
|
||||
"1/1 -> 3/2: {\\"s\\":\\"bd\\"}",
|
||||
"3/2 -> 2/1: {\\"s\\":\\"sd\\"}",
|
||||
"8333333333333333/12500000000000000 -> 7291666666666667/6250000000000000: {\\"s\\":\\"sd\\"}",
|
||||
"7291666666666667/6250000000000000 -> 5208333333333333/3125000000000000: {\\"s\\":\\"bd\\"}",
|
||||
"5208333333333333/3125000000000000 -> 6770833333333333/3125000000000000: {\\"s\\":\\"sd\\"}",
|
||||
"5208333333333333/6250000000000000 -> 8333333333333333/6250000000000000: {\\"s\\":\\"sd\\"}",
|
||||
"8333333333333333/6250000000000000 -> 5729166666666667/3125000000000000: {\\"s\\":\\"bd\\"}",
|
||||
"5729166666666667/3125000000000000 -> 7291666666666667/3125000000000000: {\\"s\\":\\"sd\\"}",
|
||||
"2/3 -> 7/6: {\\"s\\":\\"sd\\"}",
|
||||
"7/6 -> 5/3: {\\"s\\":\\"bd\\"}",
|
||||
"5/3 -> 13/6: {\\"s\\":\\"sd\\"}",
|
||||
"5/6 -> 4/3: {\\"s\\":\\"sd\\"}",
|
||||
"4/3 -> 11/6: {\\"s\\":\\"bd\\"}",
|
||||
"11/6 -> 7/3: {\\"s\\":\\"sd\\"}",
|
||||
"2/1 -> 5/2: {\\"s\\":\\"bd\\"}",
|
||||
"5/2 -> 3/1: {\\"s\\":\\"sd\\"}",
|
||||
"5208333333333333/3125000000000000 -> 6770833333333333/3125000000000000: {\\"s\\":\\"sd\\"}",
|
||||
"6770833333333333/3125000000000000 -> 8333333333333333/3125000000000000: {\\"s\\":\\"bd\\"}",
|
||||
"8333333333333333/3125000000000000 -> 4947916666666667/1562500000000000: {\\"s\\":\\"sd\\"}",
|
||||
"5729166666666667/3125000000000000 -> 7291666666666667/3125000000000000: {\\"s\\":\\"sd\\"}",
|
||||
"7291666666666667/3125000000000000 -> 8854166666666667/3125000000000000: {\\"s\\":\\"bd\\"}",
|
||||
"8854166666666667/3125000000000000 -> 5208333333333333/1562500000000000: {\\"s\\":\\"sd\\"}",
|
||||
"5/3 -> 13/6: {\\"s\\":\\"sd\\"}",
|
||||
"13/6 -> 8/3: {\\"s\\":\\"bd\\"}",
|
||||
"8/3 -> 19/6: {\\"s\\":\\"sd\\"}",
|
||||
"11/6 -> 7/3: {\\"s\\":\\"sd\\"}",
|
||||
"7/3 -> 17/6: {\\"s\\":\\"bd\\"}",
|
||||
"17/6 -> 10/3: {\\"s\\":\\"sd\\"}",
|
||||
"3/1 -> 7/2: {\\"s\\":\\"bd\\"}",
|
||||
"7/2 -> 4/1: {\\"s\\":\\"sd\\"}",
|
||||
"8333333333333333/3125000000000000 -> 4947916666666667/1562500000000000: {\\"s\\":\\"sd\\"}",
|
||||
"4947916666666667/1562500000000000 -> 5729166666666667/1562500000000000: {\\"s\\":\\"bd\\"}",
|
||||
"5729166666666667/1562500000000000 -> 6510416666666667/1562500000000000: {\\"s\\":\\"sd\\"}",
|
||||
"8854166666666667/3125000000000000 -> 5208333333333333/1562500000000000: {\\"s\\":\\"sd\\"}",
|
||||
"5208333333333333/1562500000000000 -> 5989583333333333/1562500000000000: {\\"s\\":\\"bd\\"}",
|
||||
"5989583333333333/1562500000000000 -> 6770833333333333/1562500000000000: {\\"s\\":\\"sd\\"}",
|
||||
"8/3 -> 19/6: {\\"s\\":\\"sd\\"}",
|
||||
"19/6 -> 11/3: {\\"s\\":\\"bd\\"}",
|
||||
"11/3 -> 25/6: {\\"s\\":\\"sd\\"}",
|
||||
"17/6 -> 10/3: {\\"s\\":\\"sd\\"}",
|
||||
"10/3 -> 23/6: {\\"s\\":\\"bd\\"}",
|
||||
"23/6 -> 13/3: {\\"s\\":\\"sd\\"}",
|
||||
]
|
||||
`;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user