mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-26 13:08:28 +00:00
fix restart overlap
This commit is contained in:
parent
ab9871640a
commit
f96ca562a2
@ -727,14 +727,18 @@ export class Pattern {
|
|||||||
return new Pattern((state) =>
|
return new Pattern((state) =>
|
||||||
pat
|
pat
|
||||||
.query(state)
|
.query(state)
|
||||||
.map((event) => {
|
.map((outer_hap) => {
|
||||||
const resetSpan = new TimeSpan(event.part.begin.sub(event.whole.begin), event.duration);
|
const resetSpan = new TimeSpan(
|
||||||
return this.query(new State(resetSpan)).map((hap) =>
|
outer_hap.part.begin.sub(outer_hap.whole.begin),
|
||||||
hap
|
outer_hap.part.end.sub(outer_hap.whole.begin),
|
||||||
.withSpan(
|
);
|
||||||
(s) => s.withTime((t) => t.add(event.whole.begin)), // TODO: somehow make sure span end does not overlap next event of pat
|
return this.query(new State(resetSpan)).map((inner_hap) =>
|
||||||
)
|
new Hap(
|
||||||
.setContext(hap.combineContext(event)),
|
inner_hap.whole?.withTime((t) => t.add(outer_hap.whole.begin)).intersection?.(outer_hap.whole) ||
|
||||||
|
undefined,
|
||||||
|
inner_hap.part.withTime((t) => t.add(outer_hap.whole.begin)).intersection(outer_hap.part),
|
||||||
|
inner_hap.value,
|
||||||
|
).setContext(outer_hap.combineContext(inner_hap)),
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
.flat(),
|
.flat(),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user