audio-mixer-ui 1.1.0 → 1.1.2

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.
@@ -46,16 +46,16 @@ var Dl = function() {
46
46
  }, l;
47
47
  }()
48
48
  );
49
- }(), Nl = typeof window < "u" && typeof document < "u" && window.document === document, bl = function() {
49
+ }(), Nl = typeof window < "u" && typeof document < "u" && window.document === document, cl = function() {
50
50
  return typeof global < "u" && global.Math === Math ? global : typeof self < "u" && self.Math === Math ? self : typeof window < "u" && window.Math === Math ? window : Function("return this")();
51
51
  }(), mU = function() {
52
- return typeof requestAnimationFrame == "function" ? requestAnimationFrame.bind(bl) : function(d) {
52
+ return typeof requestAnimationFrame == "function" ? requestAnimationFrame.bind(cl) : function(d) {
53
53
  return setTimeout(function() {
54
54
  return d(Date.now());
55
55
  }, 1e3 / 60);
56
56
  };
57
- }(), bU = 2;
58
- function cU(d, l) {
57
+ }(), cU = 2;
58
+ function bU(d, l) {
59
59
  var U = !1, F = !1, t = 0;
60
60
  function Z() {
61
61
  U && (U = !1, d()), F && Q();
@@ -66,7 +66,7 @@ function cU(d, l) {
66
66
  function Q() {
67
67
  var n = Date.now();
68
68
  if (U) {
69
- if (n - t < bU)
69
+ if (n - t < cU)
70
70
  return;
71
71
  F = !0;
72
72
  } else
@@ -79,7 +79,7 @@ var WU = 20, sU = ["top", "right", "bottom", "left", "width", "height", "size",
79
79
  /** @class */
80
80
  function() {
81
81
  function d() {
82
- this.connected_ = !1, this.mutationEventsAdded_ = !1, this.mutationsObserver_ = null, this.observers_ = [], this.onTransitionEnd_ = this.onTransitionEnd_.bind(this), this.refresh = cU(this.refresh.bind(this), WU);
82
+ this.connected_ = !1, this.mutationEventsAdded_ = !1, this.mutationsObserver_ = null, this.observers_ = [], this.onTransitionEnd_ = this.onTransitionEnd_.bind(this), this.refresh = bU(this.refresh.bind(this), WU);
83
83
  }
84
84
  return d.prototype.addObserver = function(l) {
85
85
  ~this.observers_.indexOf(l) || this.observers_.push(l), this.connected_ || this.connect_();
@@ -127,9 +127,9 @@ var WU = 20, sU = ["top", "right", "bottom", "left", "width", "height", "size",
127
127
  return d;
128
128
  }, Zl = function(d) {
129
129
  var l = d && d.ownerDocument && d.ownerDocument.defaultView;
130
- return l || bl;
130
+ return l || cl;
131
131
  }, ql = ul(0, 0, 0, 0);
132
- function cl(d) {
132
+ function bl(d) {
133
133
  return parseFloat(d) || 0;
134
134
  }
135
135
  function Ll(d) {
@@ -137,13 +137,13 @@ function Ll(d) {
137
137
  l[U - 1] = arguments[U];
138
138
  return l.reduce(function(F, t) {
139
139
  var Z = d["border-" + t + "-width"];
140
- return F + cl(Z);
140
+ return F + bl(Z);
141
141
  }, 0);
142
142
  }
143
143
  function BU(d) {
144
144
  for (var l = ["top", "right", "bottom", "left"], U = {}, F = 0, t = l; F < t.length; F++) {
145
145
  var Z = t[F], a = d["padding-" + Z];
146
- U[Z] = cl(a);
146
+ U[Z] = bl(a);
147
147
  }
148
148
  return U;
149
149
  }
@@ -155,7 +155,7 @@ function JU(d) {
155
155
  var l = d.clientWidth, U = d.clientHeight;
156
156
  if (!l && !U)
157
157
  return ql;
158
- var F = Zl(d).getComputedStyle(d), t = BU(F), Z = t.left + t.right, a = t.top + t.bottom, Q = cl(F.width), n = cl(F.height);
158
+ var F = Zl(d).getComputedStyle(d), t = BU(F), Z = t.left + t.right, a = t.top + t.bottom, Q = bl(F.width), n = bl(F.height);
159
159
  if (F.boxSizing === "border-box" && (Math.round(Q + Z) !== l && (Q -= Ll(F, "left", "right") + Z), Math.round(n + a) !== U && (n -= Ll(F, "top", "bottom") + a)), !GU(d)) {
160
160
  var V = Math.round(Q + Z) - l, R = Math.round(n + a) - U;
161
161
  Math.abs(V) !== 1 && (Q -= V), Math.abs(R) !== 1 && (n -= R);
@@ -285,7 +285,7 @@ var NU = (
285
285
  };
286
286
  });
287
287
  var YU = function() {
288
- return typeof bl.ResizeObserver < "u" ? bl.ResizeObserver : wl;
288
+ return typeof cl.ResizeObserver < "u" ? cl.ResizeObserver : wl;
289
289
  }();
290
290
  function Ul(d) {
291
291
  const l = k(0), U = k(0);
@@ -341,12 +341,12 @@ const v = (d, l) => {
341
341
  "2096b4c3": W.value,
342
342
  "757f26aa": m.value,
343
343
  "744b71b7": o.value,
344
- d898db12: c.value,
344
+ d898db12: b.value,
345
345
  "3a8d2f7c": J.value
346
346
  }));
347
347
  const l = d, U = w("root"), { width: F, height: t } = Ul(U), Z = X(() => Math.min(F.value, t.value)), a = X(() => Math.max(F.value, t.value)), Q = X(() => F.value > t.value), n = X(() => Q.value ? "h-slide" : "v-slide"), V = _(d, "value");
348
348
  X(() => Math.pow(1 - V.value, 0.5) * 180 + 20), X(() => Math.pow(V.value, 0.5) * 180 + 20);
349
- const R = X(() => Z.value * 0.8), e = X(() => Z.value * l.thumbLength * 0.8), m = X(() => (Q.value ? e : R).value + "px"), W = X(() => (Q.value ? R : e).value + "px"), c = X(() => Z.value * 0.1 + "px"), J = X(() => (a.value - e.value) * (V.value - l.min) / (l.max - l.min) + "px"), o = X(() => Q.value ? "90deg" : "0deg"), Y = k(!1), T = k(0), I = (i) => {
349
+ const R = X(() => Z.value * 0.8), e = X(() => Z.value * l.thumbLength * 0.8), m = X(() => (Q.value ? e : R).value + "px"), W = X(() => (Q.value ? R : e).value + "px"), b = X(() => Z.value * 0.1 + "px"), J = X(() => (a.value - e.value) * (V.value - l.min) / (l.max - l.min) + "px"), o = X(() => Q.value ? "90deg" : "0deg"), Y = k(!1), T = k(0), I = (i) => {
350
350
  if (!U.value) return V.value;
351
351
  const G = U.value.getBoundingClientRect(), L = i.clientX, tl = i.clientY;
352
352
  let f;
@@ -2392,7 +2392,7 @@ class AU {
2392
2392
  ticksPerBeat: l.ticksPerBeat
2393
2393
  };
2394
2394
  l.tracks.forEach((F, t) => {
2395
- if (F.name && !U.title && (U.title = F.name), F.events.filter((Z) => Z.type === "text").forEach((Z) => {
2395
+ if (F.events.filter((Z) => Z.type === "text").forEach((Z) => {
2396
2396
  const a = Z.text.toLowerCase();
2397
2397
  (a.includes("compos") || a.includes("by")) && !U.composer && (U.composer = Z.text);
2398
2398
  }), F.name) {
@@ -2436,8 +2436,8 @@ class AU {
2436
2436
  let R;
2437
2437
  R = n + U * 4 * Q.numerator / Q.denominator;
2438
2438
  const e = Q.numerator, m = [], W = U * (4 / Q.denominator);
2439
- for (let c = 0; c < e; c++) {
2440
- const J = n + c * W, o = this._ticksToTime(J, l);
2439
+ for (let b = 0; b < e; b++) {
2440
+ const J = n + b * W, o = this._ticksToTime(J, l);
2441
2441
  m.push(o);
2442
2442
  }
2443
2443
  Z.push({
@@ -2535,13 +2535,13 @@ class AU {
2535
2535
  velocity: m.velocity
2536
2536
  };
2537
2537
  else if (m.type === "noteOff" && e[m.noteNumber]) {
2538
- const W = e[m.noteNumber], c = m.tick - W.tick;
2538
+ const W = e[m.noteNumber], b = m.tick - W.tick;
2539
2539
  t.push({
2540
2540
  pitch: m.noteNumber,
2541
2541
  name: this._midiNoteToName(m.noteNumber),
2542
2542
  startTick: W.tick,
2543
2543
  endTick: m.tick,
2544
- duration: c,
2544
+ duration: b,
2545
2545
  startTime: this._ticksToTime(W.tick, U),
2546
2546
  endTime: this._ticksToTime(m.tick, U),
2547
2547
  velocity: W.velocity,
@@ -2864,7 +2864,7 @@ class fU {
2864
2864
  }
2865
2865
  let e = Q[Z], m = e.sig[0];
2866
2866
  for (; m < R && Z + 1 < Q.length; ) {
2867
- const W = Q[Z + 1], c = [
2867
+ const W = Q[Z + 1], b = [
2868
2868
  e.sig[0] + W.sig[0],
2869
2869
  // Total beats
2870
2870
  e.sig[1]
@@ -2874,16 +2874,16 @@ class fU {
2874
2874
  ...W.beats || []
2875
2875
  ];
2876
2876
  e = {
2877
- sig: c,
2877
+ sig: b,
2878
2878
  beats: J
2879
- }, Q[Z] = e, Q.splice(Z + 1, 1), m = c[0];
2879
+ }, Q[Z] = e, Q.splice(Z + 1, 1), m = b[0];
2880
2880
  }
2881
2881
  if (m > R) {
2882
- const W = R, c = m - R, J = e.beats ? e.beats.slice(0, W) : [], o = e.beats ? e.beats.slice(W) : [], Y = {
2882
+ const W = R, b = m - R, J = e.beats ? e.beats.slice(0, W) : [], o = e.beats ? e.beats.slice(W) : [], Y = {
2883
2883
  sig: [W, e.sig[1]],
2884
2884
  beats: J
2885
2885
  }, T = {
2886
- sig: [c, e.sig[1]],
2886
+ sig: [b, e.sig[1]],
2887
2887
  beats: o
2888
2888
  };
2889
2889
  Q[Z] = Y, Q.splice(Z + 1, 0, T), e = Y;
@@ -2901,13 +2901,13 @@ class fU {
2901
2901
  for (; a < l.length; ) {
2902
2902
  const e = l[a], m = e.barNumber, W = t[m] !== void 0 ? t[m] : 4;
2903
2903
  t[m] === void 0 && (t[m] = W);
2904
- const c = [];
2904
+ const b = [];
2905
2905
  for (let o = 0; o < W; o++)
2906
- c.push(R), R += V;
2906
+ b.push(R), R += V;
2907
2907
  const J = {
2908
2908
  sig: [W, 4],
2909
2909
  // Default to quarter notes
2910
- beats: c
2910
+ beats: b
2911
2911
  };
2912
2912
  this._generateBeatsForBar(F, e, J, W), a++;
2913
2913
  }
@@ -2963,7 +2963,7 @@ class Gl {
2963
2963
  constructor(l = null, U, F = null, t = null) {
2964
2964
  if (!U)
2965
2965
  throw new Error("Parsed MIDI data is required");
2966
- this.audioEngine = l, this._audioEngineReady = !!(l && l.isInitialized), this.instrumentMap = F || {}, this.parsedData = U, this._isPlaying = !1, this._currentTime = 0, this._totalDuration = 0, this.playbackSpeed = 1, this.partChannels = /* @__PURE__ */ new Map(), this.partOutputs = /* @__PURE__ */ new Map(), this.playbackStartTime = 0, this.lookAheadTime = 0.05, this.scheduleInterval = null, this.partNotePointers = /* @__PURE__ */ new Map(), this.partProgramPointers = /* @__PURE__ */ new Map(), this.eventBus = kl(), this.beatMapper = new fU(), this.beats = [], this.structureMetadata = t, this._calculateTotalDuration();
2966
+ this.audioEngine = l, this._audioEngineReady = !!(l && l.isInitialized), this.instrumentMap = F || {}, this.parsedData = U, this._isPlaying = !1, this._isPreScheduling = !1, this._currentTime = 0, this._totalDuration = 0, this.playbackSpeed = 1, this.partChannels = /* @__PURE__ */ new Map(), this.partOutputs = /* @__PURE__ */ new Map(), this.playbackStartTime = 0, this.lookAheadTime = 0.05, this.scheduleInterval = null, this.partNotePointers = /* @__PURE__ */ new Map(), this.partProgramPointers = /* @__PURE__ */ new Map(), this.eventBus = kl(), this.beatMapper = new fU(), this.beats = [], this.structureMetadata = t, this._calculateTotalDuration();
2967
2967
  const Z = t || this._createDefaultStructureMetadata();
2968
2968
  this.beats = this.beatMapper.mapBeats(U, Z), this._audioEngineReady && (this._setupPartChannels(), this._resetNotePointers(), this._resetProgramPointers());
2969
2969
  }
@@ -3007,17 +3007,36 @@ class Gl {
3007
3007
  throw new Error("Audio engine not ready. Call setAudioEngine() first.");
3008
3008
  this._isPlaying || (this._isPlaying = !0, this.playbackStartTime = l - this._currentTime / this.playbackSpeed, this._resetNotePointers(), this._resetProgramPointers(), this._schedulePlayback(), this._startTimeUpdateLoop());
3009
3009
  }
3010
+ /**
3011
+ * Begin pre-scheduling notes for a future start time (used during lead-in)
3012
+ * Starts the scheduling loop but doesn't mark as "playing" yet
3013
+ * @param {number} startTime - Audio context time when playback will begin
3014
+ */
3015
+ beginPreScheduling(l) {
3016
+ if (!this._audioEngineReady)
3017
+ throw new Error("Audio engine not ready. Call setAudioEngine() first.");
3018
+ this._isPreScheduling || this._isPlaying || (this._isPreScheduling = !0, this.playbackStartTime = l - this._currentTime / this.playbackSpeed, this._resetNotePointers(), this._resetProgramPointers(), this._schedulePlayback());
3019
+ }
3020
+ /**
3021
+ * Transition from pre-scheduling to playing state
3022
+ * Called when lead-in completes and main playback begins
3023
+ */
3024
+ markAsPlaying() {
3025
+ if (!this._isPreScheduling)
3026
+ throw new Error("Cannot mark as playing - not in pre-scheduling state");
3027
+ this._isPreScheduling = !1, this._isPlaying = !0, this._startTimeUpdateLoop();
3028
+ }
3010
3029
  /**
3011
3030
  * Pause playback (resumable)
3012
3031
  */
3013
3032
  pause() {
3014
- this._isPlaying && (this._isPlaying = !1, this._stopScheduling(), this._stopTimeUpdateLoop());
3033
+ !this._isPlaying && !this._isPreScheduling || (this._isPlaying = !1, this._isPreScheduling = !1, this._stopScheduling(), this._stopTimeUpdateLoop());
3015
3034
  }
3016
3035
  /**
3017
3036
  * Stop playback and reset to beginning
3018
3037
  */
3019
3038
  stop() {
3020
- this._isPlaying = !1, this._currentTime = 0, this._stopScheduling(), this._stopTimeUpdateLoop(), this._resetNotePointers(), this._resetProgramPointers();
3039
+ this._isPlaying = !1, this._isPreScheduling = !1, this._currentTime = 0, this._stopScheduling(), this._stopTimeUpdateLoop(), this._resetNotePointers(), this._resetProgramPointers();
3021
3040
  }
3022
3041
  /**
3023
3042
  * Skip to a specific time in seconds
@@ -3233,7 +3252,7 @@ class Gl {
3233
3252
  */
3234
3253
  _startScheduleLoop() {
3235
3254
  this.scheduleInterval || (this.scheduleInterval = setInterval(() => {
3236
- if (!this._isPlaying) return;
3255
+ if (!this._isPlaying && !this._isPreScheduling) return;
3237
3256
  const l = (this.audioEngine.audioContext.currentTime - this.playbackStartTime) * this.playbackSpeed, U = l + this.lookAheadTime;
3238
3257
  for (const [F, t] of this.partChannels) {
3239
3258
  const Z = this.parsedData.parts[F];
@@ -3444,9 +3463,13 @@ class _U {
3444
3463
  this.parsedData = l.parsedData, this.instrumentMap = F, this._audioEngineReady && this._setMidiPlayer(l);
3445
3464
  else if (l instanceof ArrayBuffer)
3446
3465
  this.parsedData = await this._parser.parse(l, U), this.instrumentMap = F || this._createDefaultInstrumentMap(this.parsedData.parts), this._audioEngineReady && this._setupPlayerWithAudio();
3447
- else if (l && typeof l == "object" && l.parts)
3448
- this.parsedData = l, this.instrumentMap = F || this._createDefaultInstrumentMap(l.parts), this._audioEngineReady && this._setupPlayerWithAudio();
3449
- else
3466
+ else if (l && typeof l == "object" && l.parts) {
3467
+ if (this.parsedData = l, U) {
3468
+ const t = typeof U == "string" ? JSON.parse(U) : U;
3469
+ this.parsedData.structureMetadata = t;
3470
+ }
3471
+ this.instrumentMap = F || this._createDefaultInstrumentMap(l.parts), this._audioEngineReady && this._setupPlayerWithAudio();
3472
+ } else
3450
3473
  throw new Error("Invalid input type. Expected MidiPlayer, parsed MIDI data, or ArrayBuffer");
3451
3474
  }
3452
3475
  /**
@@ -3996,7 +4019,9 @@ class _U {
3996
4019
  async _startLeadIn(l) {
3997
4020
  this.state = "lead-in";
3998
4021
  const U = this.startupConfig.delayMs / 1e3;
3999
- this.leadInStartTime = this.audioEngine.audioContext.currentTime + U, this.leadInProgress = 0, this.leadInData = this._calculateLeadInBeats(), this._emitEvent("leadInStarted", {
4022
+ this.leadInStartTime = this.audioEngine.audioContext.currentTime + U, this.leadInProgress = 0, this.leadInData = this._calculateLeadInBeats();
4023
+ const F = this.leadInStartTime + this.leadInData.duration;
4024
+ this.midiPlayer && this.midiPlayer.beginPreScheduling(F), this._emitEvent("leadInStarted", {
4000
4025
  totalBeats: this.leadInData.totalBeats,
4001
4026
  duration: this.leadInData.duration,
4002
4027
  bars: this.leadInConfig.bars,
@@ -4096,8 +4121,10 @@ class _U {
4096
4121
  * @private
4097
4122
  */
4098
4123
  _completeLeadIn(l) {
4099
- const U = this.leadInStartTime + this.leadInData.duration;
4100
- this._stopLeadIn(), this._emitEvent("leadInEnded", {}), this.leadInData = null, this.leadInProgress = null, this.leadInStartTime = null, this._startMidiPlaybackAt(U, l, !0);
4124
+ this._stopLeadIn(), this._emitEvent("leadInEnded", {}), this.leadInData = null, this.leadInProgress = null, this.leadInStartTime = null, this.state = "playing", this.midiPlayer && this.midiPlayer.markAsPlaying(), l && !this.leadInUsedMetronome && this._startMetronome(), this._emitEvent("playbackStarted", {
4125
+ startupDelayMs: 0,
4126
+ position: this.frozenTime
4127
+ });
4101
4128
  }
4102
4129
  /**
4103
4130
  * Start MIDI playback at a specific time (for seamless lead-in transitions)
@@ -4373,12 +4400,15 @@ class _U {
4373
4400
  * @private
4374
4401
  */
4375
4402
  _completeMidiPlayerSetup() {
4376
- this._partOutputsMap.clear(), Object.keys(this.midiPlayer.parsedData.parts).sort((l, U) => {
4377
- const F = this.midiPlayer.parsedData.parts[l], t = this.midiPlayer.parsedData.parts[U], Z = F.channel !== void 0 ? F.channel : F.trackIndex, a = t.channel !== void 0 ? t.channel : t.trackIndex;
4378
- return Z - a;
4379
- }).forEach((l) => {
4380
- const U = this.midiPlayer.getPartOutput(l);
4381
- U && this._partOutputsMap.set(l, U);
4403
+ var l;
4404
+ this._partOutputsMap.clear();
4405
+ const U = ((l = this.midiPlayer.structureMetadata) == null ? void 0 : l.parts) || {}, F = Object.keys(this.midiPlayer.parsedData.parts).map((t) => {
4406
+ const Z = U[t] || {}, a = this.midiPlayer.parsedData.parts[t], Q = Z.order !== void 0 && typeof Z.order == "number" ? Z.order : 999, n = a.channel ?? 0, V = a.trackIndex ?? 0;
4407
+ return { name: t, order: Q, channel: n, trackIndex: V };
4408
+ });
4409
+ F.sort((t, Z) => t.order !== Z.order ? t.order - Z.order : t.channel !== Z.channel ? t.channel - Z.channel : t.trackIndex - Z.trackIndex), F.map((t) => t.name).forEach((t) => {
4410
+ const Z = this.midiPlayer.getPartOutput(t);
4411
+ Z && this._partOutputsMap.set(t, Z);
4382
4412
  }), this._setupEventDelegation(), this.state = "ready";
4383
4413
  }
4384
4414
  /**
@@ -4473,11 +4503,11 @@ class _U {
4473
4503
  t
4474
4504
  );
4475
4505
  if (W) {
4476
- const c = W.latencyMs;
4477
- Q.push(c), console.log(`Measurement ${e + 1}/${l}: ${c.toFixed(1)}ms (RMS: ${W.rms.toFixed(4)}, peak: ${W.peak.toFixed(4)})`);
4506
+ const b = W.latencyMs;
4507
+ Q.push(b), console.log(`Measurement ${e + 1}/${l}: ${b.toFixed(1)}ms (RMS: ${W.rms.toFixed(4)}, peak: ${W.peak.toFixed(4)})`);
4478
4508
  } else
4479
4509
  console.warn(`Measurement ${e + 1}/${l}: detection timeout (no signal above ${F} threshold)`);
4480
- await new Promise((c) => setTimeout(c, 300));
4510
+ await new Promise((b) => setTimeout(b, 300));
4481
4511
  }
4482
4512
  if (Q.length === 0)
4483
4513
  throw new Error(`Failed to detect any metronome onsets. Try lowering threshold (current: ${F}) or check audio routing.`);
@@ -4518,10 +4548,10 @@ class _U {
4518
4548
  return;
4519
4549
  }
4520
4550
  l.getFloatTimeDomainData(n);
4521
- let W = 0, c = 0;
4551
+ let W = 0, b = 0;
4522
4552
  for (let o = 0; o < Q; o++) {
4523
4553
  const Y = Math.abs(n[o]);
4524
- W += n[o] * n[o], Y > c && (c = Y);
4554
+ W += n[o] * n[o], Y > b && (b = Y);
4525
4555
  }
4526
4556
  const J = Math.sqrt(W / Q);
4527
4557
  if (J >= t) {
@@ -4530,7 +4560,7 @@ class _U {
4530
4560
  e({
4531
4561
  latencyMs: Y,
4532
4562
  rms: J,
4533
- peak: c,
4563
+ peak: b,
4534
4564
  detectedTime: o
4535
4565
  });
4536
4566
  }
@@ -4555,10 +4585,10 @@ class _U {
4555
4585
  return;
4556
4586
  }
4557
4587
  l.getFloatTimeDomainData(Q);
4558
- let W = 0, c = 0;
4588
+ let W = 0, b = 0;
4559
4589
  for (let Y = 0; Y < a; Y++) {
4560
4590
  const T = Math.abs(Q[Y]);
4561
- W += Q[Y] * Q[Y], T > c && (c = T);
4591
+ W += Q[Y] * Q[Y], T > b && (b = T);
4562
4592
  }
4563
4593
  const J = Math.sqrt(W / a), o = Z.currentTime;
4564
4594
  n.push({
@@ -4566,7 +4596,7 @@ class _U {
4566
4596
  relativeTime: (o - U) * 1e3,
4567
4597
  // ms relative to scheduled time
4568
4598
  rms: J,
4569
- peak: c
4599
+ peak: b
4570
4600
  });
4571
4601
  }, F);
4572
4602
  });
@@ -5030,66 +5060,66 @@ const h = new UF();
5030
5060
  function Ql(d = {}) {
5031
5061
  const l = Fl(), U = $(), F = fl(), t = {
5032
5062
  soundfontUrl: d.soundfontUrl
5033
- }, Z = ({ currentTime: b }) => {
5034
- l.setCurrentTime(b);
5035
- }, a = ({ isPlaying: b }) => {
5036
- l.setPlaybackState(b), F.setTransportState(b ? "playing" : "stopped"), !b && l.isLeadInActive && (l.setLeadInActive(!1), h.emitTimeAndBarUpdates(l.currentTime));
5037
- }, Q = (b) => {
5038
- b && (l.isLeadInActive ? b.isLeadIn && b.beat !== void 0 && l.setCurrentBar(null, b.beat, null) : (l.setCurrentBar(b.bar, b.beat, b.repeat), F.updateLastBarPosition(b.bar)));
5039
- }, n = ({ speed: b }) => {
5040
- l.setPlaybackSpeed(b);
5041
- }, V = ({ volume: b }) => {
5042
- l.setMasterVolume(b);
5043
- }, R = ({ partName: b, volume: N }) => {
5044
- l.setPartVolume(b, N);
5045
- }, e = ({ partName: b, muted: N }) => {
5046
- l.setPartMuted(b, N);
5047
- }, m = ({ partName: b, solo: N }) => {
5048
- l.setPartSolo(b, N);
5049
- }, W = ({ bars: b }) => {
5050
- l.setLeadInActive(!0, b);
5051
- }, c = () => {
5063
+ }, Z = ({ currentTime: c }) => {
5064
+ l.setCurrentTime(c);
5065
+ }, a = ({ isPlaying: c }) => {
5066
+ l.setPlaybackState(c), F.setTransportState(c ? "playing" : "stopped"), !c && l.isLeadInActive && (l.setLeadInActive(!1), h.emitTimeAndBarUpdates(l.currentTime));
5067
+ }, Q = (c) => {
5068
+ c && (l.isLeadInActive ? c.isLeadIn && c.beat !== void 0 && l.setCurrentBar(null, c.beat, null) : (l.setCurrentBar(c.bar, c.beat, c.repeat), F.updateLastBarPosition(c.bar)));
5069
+ }, n = ({ speed: c }) => {
5070
+ l.setPlaybackSpeed(c);
5071
+ }, V = ({ volume: c }) => {
5072
+ l.setMasterVolume(c);
5073
+ }, R = ({ partName: c, volume: N }) => {
5074
+ l.setPartVolume(c, N);
5075
+ }, e = ({ partName: c, muted: N }) => {
5076
+ l.setPartMuted(c, N);
5077
+ }, m = ({ partName: c, solo: N }) => {
5078
+ l.setPartSolo(c, N);
5079
+ }, W = ({ bars: c }) => {
5080
+ l.setLeadInActive(!0, c);
5081
+ }, b = () => {
5052
5082
  l.setLeadInActive(!1);
5053
5083
  }, J = () => {
5054
5084
  l.setStartingNotesActive(!0);
5055
5085
  }, o = () => {
5056
5086
  l.setStartingNotesActive(!1);
5057
- }, Y = ({ mark: b }) => {
5058
- F.updateLastPracticeMarkUsed(b);
5059
- }, T = ({ parts: b }) => {
5060
- l.initializeParts(b), U.setParts(b);
5061
- }, I = ({ finalTime: b }) => {
5062
- l.setPlaybackState(!1), F.setTransportState("stopped"), console.log(`Song ended at time: ${b}`);
5063
- }, g = ({ duration: b }) => {
5064
- console.log("Updating total duration in store to:", b), U.setTotalDuration(b);
5065
- }, K = ({ beats: b, practiceMarks: N, maxBar: q }) => {
5066
- console.log(`Updating music data store with ${b.length} beats and ${Object.keys(N).length} practice marks`), U.updateBeats(b), U.practiceMarks = N, U.maxBar = q;
5087
+ }, Y = ({ mark: c }) => {
5088
+ F.updateLastPracticeMarkUsed(c);
5089
+ }, T = ({ parts: c }) => {
5090
+ l.initializeParts(c), U.setParts(c);
5091
+ }, I = ({ finalTime: c }) => {
5092
+ l.setPlaybackState(!1), F.setTransportState("stopped"), console.log(`Song ended at time: ${c}`);
5093
+ }, g = ({ duration: c }) => {
5094
+ console.log("Updating total duration in store to:", c), U.setTotalDuration(c);
5095
+ }, K = ({ beats: c, practiceMarks: N, maxBar: q }) => {
5096
+ console.log(`Updating music data store with ${c.length} beats and ${Object.keys(N).length} practice marks`), U.updateBeats(c), U.practiceMarks = N, U.maxBar = q;
5067
5097
  }, M = () => {
5068
- h.on("timeChanged", Z), h.on("playbackStateChanged", a), h.on("barChanged", Q), h.on("speedChanged", n), h.on("masterVolumeChanged", V), h.on("partVolumeChanged", R), h.on("partMutedChanged", e), h.on("partSoloChanged", m), h.on("leadInStarted", W), h.on("leadInCompleted", c), h.on("startingNotesStarted", J), h.on("startingNotesCompleted", o), h.on("practiceMarkChanged", Y), h.on("initialized", T), h.on("songEnded", I), h.on("durationUpdated", g), h.on("musicDataExtracted", K);
5098
+ h.on("timeChanged", Z), h.on("playbackStateChanged", a), h.on("barChanged", Q), h.on("speedChanged", n), h.on("masterVolumeChanged", V), h.on("partVolumeChanged", R), h.on("partMutedChanged", e), h.on("partSoloChanged", m), h.on("leadInStarted", W), h.on("leadInCompleted", b), h.on("startingNotesStarted", J), h.on("startingNotesCompleted", o), h.on("practiceMarkChanged", Y), h.on("initialized", T), h.on("songEnded", I), h.on("durationUpdated", g), h.on("musicDataExtracted", K);
5069
5099
  }, O = () => {
5070
- h.off("timeChanged", Z), h.off("playbackStateChanged", a), h.off("barChanged", Q), h.off("speedChanged", n), h.off("masterVolumeChanged", V), h.off("partVolumeChanged", R), h.off("partMutedChanged", e), h.off("partSoloChanged", m), h.off("leadInStarted", W), h.off("leadInCompleted", c), h.off("startingNotesStarted", J), h.off("startingNotesCompleted", o), h.off("practiceMarkChanged", Y), h.off("initialized", T), h.off("songEnded", I), h.off("durationUpdated", g), h.off("musicDataExtracted", K);
5100
+ h.off("timeChanged", Z), h.off("playbackStateChanged", a), h.off("barChanged", Q), h.off("speedChanged", n), h.off("masterVolumeChanged", V), h.off("partVolumeChanged", R), h.off("partMutedChanged", e), h.off("partSoloChanged", m), h.off("leadInStarted", W), h.off("leadInCompleted", b), h.off("startingNotesStarted", J), h.off("startingNotesCompleted", o), h.off("practiceMarkChanged", Y), h.off("initialized", T), h.off("songEnded", I), h.off("durationUpdated", g), h.off("musicDataExtracted", K);
5071
5101
  };
5072
5102
  (() => {
5073
5103
  Sl(() => {
5074
- const b = l.masterVolume;
5104
+ const c = l.masterVolume;
5075
5105
  try {
5076
- h.getMasterVolume() !== b && h.setMasterVolume(b);
5106
+ h.getMasterVolume() !== c && h.setMasterVolume(c);
5077
5107
  } catch (N) {
5078
5108
  console.warn("Master volume sync skipped during initialization:", N.message);
5079
5109
  }
5080
5110
  }), Sl(() => {
5081
- const b = l.metronomeVolume;
5111
+ const c = l.metronomeVolume;
5082
5112
  try {
5083
- h.getMetronomeVolume() !== b && h.setMetronomeVolume(b);
5113
+ h.getMetronomeVolume() !== c && h.setMetronomeVolume(c);
5084
5114
  } catch (N) {
5085
5115
  console.warn("Metronome volume sync skipped during initialization:", N.message);
5086
5116
  }
5087
5117
  });
5088
5118
  })();
5089
- const i = async (b) => {
5119
+ const i = async (c) => {
5090
5120
  try {
5091
- if (l.setLoaded(!1), M(), U.loadMusicData(b), await h.initialize(b, t), F.buildFixedNavigationPoints(), !b.midiData && b.beats && b.beats.length > 0) {
5092
- const N = b.beats[0];
5121
+ if (l.setLoaded(!1), M(), U.loadMusicData(c), await h.initialize(c, t), F.buildFixedNavigationPoints(), !c.midiData && c.beats && c.beats.length > 0) {
5122
+ const N = c.beats[0];
5093
5123
  l.setCurrentBar(N.bar, N.beat, N.repeat), h.setTime(N.time);
5094
5124
  }
5095
5125
  h.updateToggleStates(l.metronomeEnabled, l.leadInEnabled), l.setLoaded(!0);
@@ -5097,43 +5127,43 @@ function Ql(d = {}) {
5097
5127
  throw console.error("Failed to initialize audio engine:", N), l.setLoaded(!1), N;
5098
5128
  }
5099
5129
  }, G = () => {
5100
- const b = l.currentBar, N = l.currentRepeat, q = l.currentTime;
5101
- F.setLastPlayStart(b, N, q), F.setNavigationAction("play"), h.play();
5130
+ const c = l.currentBar, N = l.currentRepeat, q = l.currentTime;
5131
+ F.setLastPlayStart(c, N, q), F.setNavigationAction("play"), h.play();
5102
5132
  }, L = () => {
5103
5133
  F.setNavigationAction("pause"), h.stop();
5104
5134
  }, tl = () => {
5105
5135
  F.setNavigationAction("pause"), h.pause();
5106
- }, f = (b) => {
5107
- F.setNavigationAction("manual"), h.setTime(b);
5108
- }, A = (b, N = 0) => {
5109
- F.setNavigationAction("manual"), h.setBar(b, N);
5110
- }, u = (b) => {
5111
- h.goToPracticeMark(b);
5112
- }, S = (b) => {
5113
- h.setPlaybackSpeed(b);
5114
- }, E = (b) => {
5115
- h.setMasterVolume(b);
5116
- }, H = (b, N) => {
5117
- h.setPartVolume(b, N);
5118
- }, Vl = (b, N) => {
5119
- h.setPartMuted(b, N);
5120
- }, nl = (b, N) => {
5121
- h.setPartSolo(b, N);
5122
- }, Rl = (b = 1) => {
5123
- h.playLeadIn(b);
5136
+ }, f = (c) => {
5137
+ F.setNavigationAction("manual"), h.setTime(c);
5138
+ }, A = (c, N = 0) => {
5139
+ F.setNavigationAction("manual"), h.setBar(c, N);
5140
+ }, u = (c) => {
5141
+ h.goToPracticeMark(c);
5142
+ }, S = (c) => {
5143
+ h.setPlaybackSpeed(c);
5144
+ }, E = (c) => {
5145
+ h.setMasterVolume(c);
5146
+ }, H = (c, N) => {
5147
+ h.setPartVolume(c, N);
5148
+ }, Vl = (c, N) => {
5149
+ h.setPartMuted(c, N);
5150
+ }, nl = (c, N) => {
5151
+ h.setPartSolo(c, N);
5152
+ }, Rl = (c = 1) => {
5153
+ h.playLeadIn(c);
5124
5154
  }, FU = () => {
5125
5155
  h.playStartingNotes();
5126
- }, rl = (b, N = !0, q = 0) => {
5127
- N && F.leadInEnabled ? (A(b, q), Rl(F.leadInBars)) : (A(b, q), G());
5128
- }, tU = (b, N = !0) => {
5129
- const q = U.getBarForMark(b);
5156
+ }, rl = (c, N = !0, q = 0) => {
5157
+ N && F.leadInEnabled ? (A(c, q), Rl(F.leadInBars)) : (A(c, q), G());
5158
+ }, tU = (c, N = !0) => {
5159
+ const q = U.getBarForMark(c);
5130
5160
  q && rl(q, N);
5131
5161
  }, dU = () => {
5132
- const b = !l.metronomeEnabled;
5133
- return l.setMetronomeEnabled(b), h.setMetronomeEnabled(b), b;
5162
+ const c = !l.metronomeEnabled;
5163
+ return l.setMetronomeEnabled(c), h.setMetronomeEnabled(c), c;
5134
5164
  }, ZU = () => {
5135
- const b = !l.leadInEnabled;
5136
- return l.setLeadInEnabled(b), h.updateToggleStates(l.metronomeEnabled, b), b;
5165
+ const c = !l.leadInEnabled;
5166
+ return l.setLeadInEnabled(c), h.updateToggleStates(l.metronomeEnabled, c), c;
5137
5167
  }, aU = () => {
5138
5168
  h.stop(), l.setLoaded(!1), U.clear(), console.log("Audio mixer reset - ready for new score");
5139
5169
  };
@@ -5158,15 +5188,15 @@ function Ql(d = {}) {
5158
5188
  setPartVolume: H,
5159
5189
  setPartMuted: Vl,
5160
5190
  setPartSolo: nl,
5161
- getPartLevel: (b) => h.getPartLevel(b),
5191
+ getPartLevel: (c) => h.getPartLevel(c),
5162
5192
  // Special features
5163
5193
  playLeadIn: Rl,
5164
5194
  playStartingNotes: FU,
5165
5195
  // Feature toggles
5166
5196
  toggleMetronome: dU,
5167
5197
  toggleLeadIn: ZU,
5168
- setMetronomeEnabled: (b) => {
5169
- l.setMetronomeEnabled(b), h.setMetronomeEnabled(b);
5198
+ setMetronomeEnabled: (c) => {
5199
+ l.setMetronomeEnabled(c), h.setMetronomeEnabled(c);
5170
5200
  },
5171
5201
  // Complex operations
5172
5202
  playFromBar: rl,
@@ -5201,18 +5231,18 @@ const FF = ["aria-label"], tF = {
5201
5231
  }),
5202
5232
  emits: ["update:volume", "update:mute", "update:solo"],
5203
5233
  setup(d) {
5204
- ll((c) => ({
5234
+ ll((b) => ({
5205
5235
  "03f87250": V.value
5206
5236
  }));
5207
5237
  const l = d;
5208
5238
  Fl();
5209
5239
  const U = Ql(), F = _(d, "volume"), t = _(d, "mute"), Z = _(d, "solo");
5210
- z(F, (c) => {
5211
- U.setPartVolume(l.name, c);
5212
- }), z(t, (c) => {
5213
- U.setPartMuted(l.name, c), c && (Z.value = !1);
5214
- }), z(Z, (c) => {
5215
- U.setPartSolo(l.name, c), c && (t.value = !1);
5240
+ z(F, (b) => {
5241
+ U.setPartVolume(l.name, b);
5242
+ }), z(t, (b) => {
5243
+ U.setPartMuted(l.name, b), b && (Z.value = !1);
5244
+ }), z(Z, (b) => {
5245
+ U.setPartSolo(l.name, b), b && (t.value = !1);
5216
5246
  });
5217
5247
  const a = w("el"), { width: Q, height: n } = Ul(a), V = X(() => Math.min(Q.value, n.value) + "px"), R = X(
5218
5248
  () => Q.value > n.value ? "mobile" : Q.value < 60 ? "tablet" : "desktop"
@@ -5233,14 +5263,14 @@ const FF = ["aria-label"], tF = {
5233
5263
  }), sl(() => {
5234
5264
  e && (clearInterval(e), e = null);
5235
5265
  });
5236
- const W = (c) => {
5237
- if (["ArrowUp", "ArrowRight", "ArrowDown", "ArrowLeft"].includes(c.key)) {
5238
- c.preventDefault(), c.stopPropagation();
5239
- const J = c.key === "ArrowUp" || c.key === "ArrowRight" ? 0.1 : -0.1;
5266
+ const W = (b) => {
5267
+ if (["ArrowUp", "ArrowRight", "ArrowDown", "ArrowLeft"].includes(b.key)) {
5268
+ b.preventDefault(), b.stopPropagation();
5269
+ const J = b.key === "ArrowUp" || b.key === "ArrowRight" ? 0.1 : -0.1;
5240
5270
  F.value = Math.max(0, Math.min(1, F.value + J));
5241
- } else c.key === "m" && !c.shiftKey ? (c.preventDefault(), c.stopPropagation(), t.value = !t.value) : c.key === "s" && !c.shiftKey && (c.preventDefault(), c.stopPropagation(), Z.value = !Z.value);
5271
+ } else b.key === "m" && !b.shiftKey ? (b.preventDefault(), b.stopPropagation(), t.value = !t.value) : b.key === "s" && !b.shiftKey && (b.preventDefault(), b.stopPropagation(), Z.value = !Z.value);
5242
5272
  };
5243
- return (c, J) => (p(), y("div", {
5273
+ return (b, J) => (p(), y("div", {
5244
5274
  ref_key: "el",
5245
5275
  ref: a,
5246
5276
  class: C([R.value, "part"]),
@@ -5288,7 +5318,7 @@ const FF = ["aria-label"], tF = {
5288
5318
  77574882: Y.value,
5289
5319
  "188cd0ae": T.value
5290
5320
  }));
5291
- const l = w("el"), U = w("rpt"), { width: F, height: t } = Ul(l), Z = $(), a = Fl(), Q = Ql(), n = k("1"), V = k("A"), R = k(0), e = k(2), m = k(!1), W = k(!1), c = k(!1), J = k(!0);
5321
+ const l = w("el"), U = w("rpt"), { width: F, height: t } = Ul(l), Z = $(), a = Fl(), Q = Ql(), n = k("1"), V = k("A"), R = k(0), e = k(2), m = k(!1), W = k(!1), b = k(!1), J = k(!0);
5292
5322
  let o = null;
5293
5323
  z(() => {
5294
5324
  var u;
@@ -5329,17 +5359,17 @@ const FF = ["aria-label"], tF = {
5329
5359
  S && S.stopPropagation(), V.value = u, W.value = !1, Q.goToPracticeMark(u), l.value && l.value.blur();
5330
5360
  }
5331
5361
  function i() {
5332
- e.value > 1 && (c.value = !0), a.currentRepeat < e.value && Q.setBar(a.currentBar, a.currentRepeat + 1);
5362
+ e.value > 1 && (b.value = !0), a.currentRepeat < e.value && Q.setBar(a.currentBar, a.currentRepeat + 1);
5333
5363
  }
5334
5364
  function G() {
5335
- e.value > 1 && (c.value = !0), a.currentRepeat > 1 && Q.setBar(a.currentBar, a.currentRepeat - 1);
5365
+ e.value > 1 && (b.value = !0), a.currentRepeat > 1 && Q.setBar(a.currentBar, a.currentRepeat - 1);
5336
5366
  }
5337
5367
  function L(u) {
5338
- g.value && (u.stopPropagation(), c.value = !1, W.value = !W.value);
5368
+ g.value && (u.stopPropagation(), b.value = !1, W.value = !W.value);
5339
5369
  }
5340
5370
  function tl(u) {
5341
5371
  var S, E;
5342
- (S = l.value) != null && S.contains(u.target) || (W.value = !1), (E = U.value) != null && E.contains(u.target) || (c.value = !1);
5372
+ (S = l.value) != null && S.contains(u.target) || (W.value = !1), (E = U.value) != null && E.contains(u.target) || (b.value = !1);
5343
5373
  }
5344
5374
  function f() {
5345
5375
  W.value && setTimeout(() => {
@@ -5404,7 +5434,7 @@ const FF = ["aria-label"], tF = {
5404
5434
  B("div", {
5405
5435
  ref_key: "rpt",
5406
5436
  ref: U,
5407
- class: C(["rpt-input", { edit: c.value, available: e.value > 1 }])
5437
+ class: C(["rpt-input", { edit: b.value, available: e.value > 1 }])
5408
5438
  }, [
5409
5439
  B("div", aF, D(r(a).currentRepeat || "-"), 1),
5410
5440
  (p(), y("svg", {
@@ -5439,7 +5469,7 @@ const FF = ["aria-label"], tF = {
5439
5469
  ])) : j("", !0)
5440
5470
  ], 34));
5441
5471
  }
5442
- }, bF = /* @__PURE__ */ v(mF, [["__scopeId", "data-v-7856f4ec"]]), cF = { class: "frame" }, WF = { class: "title" }, sF = {
5472
+ }, cF = /* @__PURE__ */ v(mF, [["__scopeId", "data-v-7856f4ec"]]), bF = { class: "frame" }, WF = { class: "title" }, sF = {
5443
5473
  __name: "BaseNumericInput",
5444
5474
  props: /* @__PURE__ */ yl({
5445
5475
  title: {
@@ -5529,7 +5559,7 @@ const FF = ["aria-label"], tF = {
5529
5559
  ref_key: "el",
5530
5560
  ref: U
5531
5561
  }, [
5532
- B("div", cF, [
5562
+ B("div", bF, [
5533
5563
  El(B("input", {
5534
5564
  type: "text",
5535
5565
  class: "input",
@@ -5672,7 +5702,7 @@ const FF = ["aria-label"], tF = {
5672
5702
  function e() {
5673
5703
  Q.playStartingNotes();
5674
5704
  }
5675
- const m = X(() => Z.metronomeEnabled), W = X(() => Z.leadInEnabled), c = k(!1), J = k(null);
5705
+ const m = X(() => Z.metronomeEnabled), W = X(() => Z.leadInEnabled), b = k(!1), J = k(null);
5676
5706
  function o() {
5677
5707
  if (U.externalMenuControl) {
5678
5708
  F("menu-click"), Q.audioEngine.initializeAudioSystem().catch((s) => {
@@ -5680,7 +5710,7 @@ const FF = ["aria-label"], tF = {
5680
5710
  });
5681
5711
  return;
5682
5712
  }
5683
- c.value = !c.value, c.value && (Q.audioEngine.initializeAudioSystem().catch((s) => {
5713
+ b.value = !b.value, b.value && (Q.audioEngine.initializeAudioSystem().catch((s) => {
5684
5714
  console.warn("Audio system pre-initialization failed:", s);
5685
5715
  }), setTimeout(() => {
5686
5716
  var i;
@@ -5689,7 +5719,7 @@ const FF = ["aria-label"], tF = {
5689
5719
  }, 0));
5690
5720
  }
5691
5721
  function Y() {
5692
- c.value = !1;
5722
+ b.value = !1;
5693
5723
  }
5694
5724
  function T(s) {
5695
5725
  J.value && !J.value.contains(s.target) && Y();
@@ -5785,7 +5815,7 @@ const FF = ["aria-label"], tF = {
5785
5815
  }, i[2] || (i[2] = [
5786
5816
  B("path", { d: "M120-240v-80h720v80H120Zm0-200v-80h720v80H120Zm0-200v-80h720v80H120Z" }, null, -1)
5787
5817
  ]))),
5788
- !d.externalMenuControl && c.value && s.$slots.menu ? (p(), y("div", {
5818
+ !d.externalMenuControl && b.value && s.$slots.menu ? (p(), y("div", {
5789
5819
  key: 0,
5790
5820
  class: "dropdown-menu",
5791
5821
  onClick: Y
@@ -5814,7 +5844,7 @@ const FF = ["aria-label"], tF = {
5814
5844
  }, null, 8, ["value"]),
5815
5845
  i[10] || (i[10] = B("div", { class: "tick-t" }, "Tick", -1)),
5816
5846
  i[11] || (i[11] = B("div", { class: "tick-focus" }, null, -1)),
5817
- x(bF, { class: "bar" }),
5847
+ x(cF, { class: "bar" }),
5818
5848
  x(iF, { class: "time" }),
5819
5849
  x(hF, { class: "speed" }),
5820
5850
  B("div", SF, [
@@ -6049,7 +6079,7 @@ const FF = ["aria-label"], tF = {
6049
6079
  },
6050
6080
  emits: ["menu-click"],
6051
6081
  setup(d, { emit: l }) {
6052
- ll((c) => ({
6082
+ ll((b) => ({
6053
6083
  "3e3bf6e6": e.value,
6054
6084
  "3e499cb2": m.value,
6055
6085
  "3a701552": W.value
@@ -6059,8 +6089,8 @@ const FF = ["aria-label"], tF = {
6059
6089
  a.initializeListeners();
6060
6090
  });
6061
6091
  const Q = w("container"), { width: n } = Ul(Q), V = X(() => Z.isLoaded), R = X(() => {
6062
- const c = n.value, J = t.parts.length;
6063
- return c < 640 || c < xl * J + Il ? 0 : c < Ml * J + vl ? 1 : c < zl * J + gl ? 2 : 3;
6092
+ const b = n.value, J = t.parts.length;
6093
+ return b < 640 || b < xl * J + Il ? 0 : b < Ml * J + vl ? 1 : b < zl * J + gl ? 2 : 3;
6064
6094
  }), e = X(() => {
6065
6095
  switch (R.value) {
6066
6096
  case 0:
@@ -6084,10 +6114,10 @@ const FF = ["aria-label"], tF = {
6084
6114
  return `${zl}px `.repeat(t.parts.length) + `${gl}px`;
6085
6115
  }
6086
6116
  }), W = X(() => {
6087
- const c = [...t.parts.keys()];
6088
- return R.value > 0 ? '"' + c.map((J) => "part" + J).join(" ") + ' controls"' : '"controls" ' + c.map((J) => '"part' + J + '"').join(" ");
6117
+ const b = [...t.parts.keys()];
6118
+ return R.value > 0 ? '"' + b.map((J) => "part" + J).join(" ") + ' controls"' : '"controls" ' + b.map((J) => '"part' + J + '"').join(" ");
6089
6119
  });
6090
- return (c, J) => (p(), y("div", {
6120
+ return (b, J) => (p(), y("div", {
6091
6121
  class: "outer",
6092
6122
  ref_key: "container",
6093
6123
  ref: Q
@@ -6113,7 +6143,7 @@ const FF = ["aria-label"], tF = {
6113
6143
  class: "controls"
6114
6144
  }, {
6115
6145
  menu: P(() => [
6116
- al(c.$slots, "menu", {}, void 0, !0)
6146
+ al(b.$slots, "menu", {}, void 0, !0)
6117
6147
  ]),
6118
6148
  _: 3
6119
6149
  }, 8, ["external-menu-control"]),
@@ -6372,7 +6402,7 @@ new _F();
6372
6402
  export {
6373
6403
  dl as AudioButton,
6374
6404
  Wl as AudioSlider,
6375
- bF as BarInput,
6405
+ cF as BarInput,
6376
6406
  UU as BaseNumericInput,
6377
6407
  pl as DEV_MODE,
6378
6408
  _F as DummyAudioEngine,