diff --git a/packages/core/index.mjs b/packages/core/index.mjs index ceffdcbe..bed63f9a 100644 --- a/packages/core/index.mjs +++ b/packages/core/index.mjs @@ -22,7 +22,6 @@ export * from './cyclist.mjs'; export * from './logger.mjs'; export * from './time.mjs'; export * from './draw.mjs'; -export * from './scope.mjs'; export * from './animate.mjs'; export * from './pianoroll.mjs'; export * from './spiral.mjs'; diff --git a/packages/webaudio/index.mjs b/packages/webaudio/index.mjs index 563a367e..a425e683 100644 --- a/packages/webaudio/index.mjs +++ b/packages/webaudio/index.mjs @@ -5,4 +5,5 @@ This program is free software: you can redistribute it and/or modify it under th */ export * from './webaudio.mjs'; +export * from './scope.mjs'; export * from 'superdough'; diff --git a/packages/core/scope.mjs b/packages/webaudio/scope.mjs similarity index 89% rename from packages/core/scope.mjs rename to packages/webaudio/scope.mjs index 392ea859..b3b4b8bd 100644 --- a/packages/core/scope.mjs +++ b/packages/webaudio/scope.mjs @@ -1,11 +1,9 @@ -import { Pattern } from './pattern.mjs'; -import { getDrawContext } from './draw.mjs'; -import { analyser } from '@strudel.cycles/webaudio'; -import { clamp } from './util.mjs'; +import { Pattern, getDrawContext, clamp } from '@strudel.cycles/core'; +import { analyser } from 'superdough'; export function drawTimeScope( analyser, - { align = true, color = 'white', thickness = 3, scale = 0.25, pos = 0.75, next = 1 } = {}, + { align = true, color = 'white', thickness = 3, scale = 0.25, pos = 0.75, next = 1, trigger = 0 } = {}, ) { const ctx = getDrawContext(); const dataArray = getAnalyzerData('time'); @@ -17,9 +15,8 @@ export function drawTimeScope( let canvas = ctx.canvas; const bufferSize = analyser.frequencyBinCount; - const triggerValue = 0; let triggerIndex = align - ? Array.from(dataArray).findIndex((v, i, arr) => i && arr[i - 1] < triggerValue && v >= triggerValue) + ? Array.from(dataArray).findIndex((v, i, arr) => i && arr[i - 1] > -trigger && v <= -trigger) : 0; triggerIndex = Math.max(triggerIndex, 0); // fallback to 0 when no trigger is found