From ac01a621beb6be0e739ae7d14078c577ee6b23c4 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 1 Apr 2022 15:37:50 +0100 Subject: [PATCH] workaround for osc-js timestamp bug, reduce latency --- packages/osc/osc.mjs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs index 33586d29..34169ed0 100644 --- a/packages/osc/osc.mjs +++ b/packages/osc/osc.mjs @@ -3,17 +3,18 @@ import { Pattern, isPattern } from '@strudel.cycles/core/strudel.mjs'; const comm = new OSC(); comm.open(); +// TODO - get startTime from scheduler const startTime = Date.now(); -const latency = 0.2; +const latency = 0.1; Pattern.prototype.osc = function () { return this._withEvent((event) => { const onTrigger = (time, event) => { - console.log(time); const keyvals = Object.entries(event.value).flat(); - const ts = startTime + ((time+latency)*1000); + const ts = Math.floor(startTime + ((time + latency) * 1000)); const message = new OSC.Message('/dirt/play',...keyvals); - const bundle = new OSC.Bundle([message], ts) + const bundle = new OSC.Bundle([message], ts); + bundle.timestamp(ts); // workaround for https://github.com/adzialocha/osc-js/issues/60 comm.send(bundle); }; return event.setContext({ ...event.context, onTrigger });