handle edge case

This commit is contained in:
Felix Roos 2022-05-01 14:13:20 +02:00
parent bdb5dabba5
commit 29fceff9b3
2 changed files with 13 additions and 8 deletions

View file

@ -37,7 +37,7 @@ const highlightField = StateField.define({
} }
return highlights; return highlights;
} catch (err) { } catch (err) {
console.warn('highlighting error', err); // console.warn('highlighting error', err);
return highlights; return highlights;
} }
}, },

View file

@ -12,6 +12,7 @@ function useHighlighting({ view, pattern, active }) {
let frame = requestAnimationFrame(updateHighlights); let frame = requestAnimationFrame(updateHighlights);
function updateHighlights() { function updateHighlights() {
try {
const audioTime = Tone.getTransport().seconds; const audioTime = Tone.getTransport().seconds;
const span = [lastEnd || audioTime, audioTime + 1 / 60]; const span = [lastEnd || audioTime, audioTime + 1 / 60];
lastEnd = audioTime + 1 / 60; lastEnd = audioTime + 1 / 60;
@ -19,6 +20,10 @@ function useHighlighting({ view, pattern, active }) {
const haps = pattern.queryArc(...span).filter((hap) => hap.hasOnset()); const haps = pattern.queryArc(...span).filter((hap) => hap.hasOnset());
highlights = highlights.concat(haps); // add potential new onsets highlights = highlights.concat(haps); // add potential new onsets
view.dispatch({ effects: setHighlights.of(highlights) }); // highlight all still active + new active haps view.dispatch({ effects: setHighlights.of(highlights) }); // highlight all still active + new active haps
} catch (err) {
// console.log('error in updateHighlights', err);
view.dispatch({ effects: setHighlights.of([]) });
}
frame = requestAnimationFrame(updateHighlights); frame = requestAnimationFrame(updateHighlights);
} }