@signalsandsorcery/plugin-sdk 2.24.1 → 2.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -2473,6 +2473,25 @@ function parseCrossfadePairs(sceneData) {
2473
2473
  }
2474
2474
  return pairs;
2475
2475
  }
2476
+ var FADE_FLOOR_DB = -80;
2477
+ function gainToDb(gain) {
2478
+ return gain <= 1e-4 ? FADE_FLOOR_DB : Math.max(FADE_FLOOR_DB, 20 * Math.log10(gain));
2479
+ }
2480
+ function buildCrossfadeVolumeCurves(bars, bpm, sliderPos, steps = 32) {
2481
+ const durationSeconds = bars * 4 * 60 / Math.max(1, bpm);
2482
+ const s = Math.min(0.98, Math.max(0.02, sliderPos));
2483
+ const round = (n) => Math.round(n * 1e3) / 1e3;
2484
+ const origin = [];
2485
+ const target = [];
2486
+ for (let i = 0; i <= steps; i++) {
2487
+ const x = i / steps;
2488
+ const time = round(x * durationSeconds);
2489
+ const theta = x <= s ? x / s * (Math.PI / 4) : Math.PI / 4 + (x - s) / (1 - s) * (Math.PI / 4);
2490
+ origin.push({ time, db: Math.round(gainToDb(Math.cos(theta)) * 100) / 100 });
2491
+ target.push({ time, db: Math.round(gainToDb(Math.sin(theta)) * 100) / 100 });
2492
+ }
2493
+ return { origin, target };
2494
+ }
2476
2495
 
2477
2496
  // src/crossfade-inpaint.ts
2478
2497
  var PITCH_NAMES = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"];
@@ -3764,7 +3783,7 @@ function useTrackReorder({
3764
3783
  }
3765
3784
 
3766
3785
  // src/constants/sdk-version.ts
3767
- var PLUGIN_SDK_VERSION = "2.24.0";
3786
+ var PLUGIN_SDK_VERSION = "2.25.0";
3768
3787
 
3769
3788
  // src/utils/format-concurrent-tracks.ts
3770
3789
  function formatConcurrentTracks(ctx) {
@@ -3950,6 +3969,7 @@ export {
3950
3969
  analyzeWavPeak,
3951
3970
  asCrossfadeMeta,
3952
3971
  buildCrossfadeInpaintPrompt,
3972
+ buildCrossfadeVolumeCurves,
3953
3973
  calculateTimeBasedTarget,
3954
3974
  cellToPx,
3955
3975
  centerScrollTop,