@opendaw/studio-adapters 0.0.75 → 0.0.77

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.
@@ -34,11 +34,11 @@ export class AudioFileBoxAdapter {
34
34
  const loader = this.getOrCreateLoader();
35
35
  const subscription = loader.subscribe(state => {
36
36
  if (state.type === "loaded") {
37
- subscription.terminate();
37
+ queueMicrotask(() => subscription.terminate());
38
38
  resolve(loader.data.unwrap("State mismatch"));
39
39
  }
40
40
  else if (state.type === "error") {
41
- subscription.terminate();
41
+ queueMicrotask(() => subscription.terminate());
42
42
  reject(new Error(state.reason));
43
43
  }
44
44
  });
@@ -4,6 +4,7 @@ export declare const EngineSettingsSchema: z.ZodObject<{
4
4
  enabled: z.ZodBoolean;
5
5
  beatSubDivision: z.ZodUnion<z.ZodLiteral<2 | 1 | 8 | 4>[]>;
6
6
  gain: z.ZodNumber;
7
+ monophonic: z.ZodBoolean;
7
8
  }, z.core.$strip>>;
8
9
  playback: z.ZodDefault<z.ZodObject<{
9
10
  timestampEnabled: z.ZodBoolean;
@@ -13,11 +14,15 @@ export declare const EngineSettingsSchema: z.ZodObject<{
13
14
  recording: z.ZodDefault<z.ZodObject<{
14
15
  countInBars: z.ZodUnion<z.ZodLiteral<2 | 1 | 3 | 8 | 6 | 4 | 5 | 7>[]>;
15
16
  allowTakes: z.ZodBoolean;
17
+ olderTakeAction: z.ZodUnion<z.ZodLiteral<"disable-track" | "mute-region">[]>;
18
+ olderTakeScope: z.ZodUnion<z.ZodLiteral<"all" | "previous-only">[]>;
16
19
  }, z.core.$strip>>;
17
20
  }, z.core.$strip>;
18
21
  export type EngineSettings = z.infer<typeof EngineSettingsSchema>;
19
22
  export declare namespace EngineSettings {
20
23
  const BeatSubDivisionOptions: readonly [1, 2, 4, 8];
21
24
  const RecordingCountInBars: readonly [1, 2, 3, 4, 5, 6, 7, 8];
25
+ const OlderTakeActionOptions: readonly ["disable-track", "mute-region"];
26
+ const OlderTakeScopeOptions: readonly ["all", "previous-only"];
22
27
  }
23
28
  //# sourceMappingURL=EnginePreferencesSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnginePreferencesSchema.d.ts","sourceRoot":"","sources":["../../src/engine/EnginePreferencesSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAKrB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;iBA0B/B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,yBAAiB,cAAc,CAAC;IACrB,MAAM,sBAAsB,uBAA0B,CAAA;IACtD,MAAM,oBAAoB,mCAAwB,CAAA;CAC5D"}
1
+ {"version":3,"file":"EnginePreferencesSchema.d.ts","sourceRoot":"","sources":["../../src/engine/EnginePreferencesSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAUrB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;iBAgC/B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,yBAAiB,cAAc,CAAC;IACrB,MAAM,sBAAsB,uBAA0B,CAAA;IACtD,MAAM,oBAAoB,mCAAwB,CAAA;IAClD,MAAM,sBAAsB,2CAA0B,CAAA;IACtD,MAAM,qBAAqB,mCAAyB,CAAA;CAC9D"}
@@ -1,15 +1,21 @@
1
1
  import { z } from "zod";
2
2
  const _BeatSubDivisionOptions = [1, 2, 4, 8];
3
3
  const _RecordingCountInBars = [1, 2, 3, 4, 5, 6, 7, 8];
4
+ const _OlderTakeActionOptions = ["disable-track", "mute-region"];
5
+ const _OlderTakeScopeOptions = ["all", "previous-only"];
6
+ const isDevOrLocalhost = typeof location !== "undefined" &&
7
+ (location.hostname === "localhost" || location.hostname === "dev.opendaw.studio");
4
8
  export const EngineSettingsSchema = z.object({
5
9
  metronome: z.object({
6
10
  enabled: z.boolean(),
7
11
  beatSubDivision: z.union(_BeatSubDivisionOptions.map(value => z.literal(value))),
8
- gain: z.number().min(Number.NEGATIVE_INFINITY).max(0)
12
+ gain: z.number().min(Number.NEGATIVE_INFINITY).max(0),
13
+ monophonic: z.boolean()
9
14
  }).default({
10
15
  enabled: false,
11
16
  beatSubDivision: 1,
12
- gain: -6.0
17
+ gain: -6.0,
18
+ monophonic: true
13
19
  }),
14
20
  playback: z.object({
15
21
  timestampEnabled: z.boolean(),
@@ -22,14 +28,20 @@ export const EngineSettingsSchema = z.object({
22
28
  }),
23
29
  recording: z.object({
24
30
  countInBars: z.union(_RecordingCountInBars.map(value => z.literal(value))),
25
- allowTakes: z.boolean()
31
+ allowTakes: z.boolean(),
32
+ olderTakeAction: z.union(_OlderTakeActionOptions.map(value => z.literal(value))),
33
+ olderTakeScope: z.union(_OlderTakeScopeOptions.map(value => z.literal(value)))
26
34
  }).default({
27
35
  countInBars: 1,
28
- allowTakes: true
36
+ allowTakes: isDevOrLocalhost,
37
+ olderTakeAction: "mute-region",
38
+ olderTakeScope: "previous-only"
29
39
  })
30
40
  });
31
41
  export var EngineSettings;
32
42
  (function (EngineSettings) {
33
43
  EngineSettings.BeatSubDivisionOptions = _BeatSubDivisionOptions;
34
44
  EngineSettings.RecordingCountInBars = _RecordingCountInBars;
45
+ EngineSettings.OlderTakeActionOptions = _OlderTakeActionOptions;
46
+ EngineSettings.OlderTakeScopeOptions = _OlderTakeScopeOptions;
35
47
  })(EngineSettings || (EngineSettings = {}));
@@ -16,6 +16,7 @@ export interface EngineCommands extends Terminable {
16
16
  scheduleClipPlay(clipIds: ReadonlyArray<UUID.Bytes>): void;
17
17
  scheduleClipStop(trackIds: ReadonlyArray<UUID.Bytes>): void;
18
18
  setupMIDI(port: MessagePort, buffer: SharedArrayBuffer): void;
19
+ loadClickSound(index: 0 | 1, data: AudioData): void;
19
20
  }
20
21
  export interface EngineToClient {
21
22
  log(message: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAE1C,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,aAAa,IAAI,IAAI,CAAA;IACrB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,IAAI,IAAI,CAAA;IAEb,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAExC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC3D,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAChE;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,IAAI,IAAI,CAAA;CAChB"}
1
+ {"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAE1C,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,aAAa,IAAI,IAAI,CAAA;IACrB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,IAAI,IAAI,CAAA;IAEb,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAExC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC3D,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAE7D,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;CACtD;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,IAAI,IAAI,CAAA;CAChB"}
@@ -12,7 +12,7 @@ export var TrackType;
12
12
  case TrackType.Audio:
13
13
  return "Audio";
14
14
  case TrackType.Notes:
15
- return "Notes";
15
+ return "Note";
16
16
  case TrackType.Value:
17
17
  return "Automation";
18
18
  case TrackType.Undefined:
@@ -1 +1 @@
1
- {"version":3,"file":"ValueEventCollectionBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/collection/ValueEventCollectionBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,uBAAuB,EAAC,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAGH,GAAG,EAIH,QAAQ,EACR,MAAM,EAGN,YAAY,EAEZ,SAAS,EACT,IAAI,EACJ,YAAY,EACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,OAAO,EAAM,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAC,eAAe,EAAE,aAAa,EAAE,IAAI,EAAa,MAAM,kBAAkB,CAAA;AAEjF,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAA;AAGlE,KAAK,iBAAiB,GAAG;IACrB,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,aAAa,CAAA;CAC/B,CAAA;AAED,qBAAa,8BAA+B,YAAW,UAAU;;gBAUjD,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,uBAAuB;IA+BrE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS;IAEvD,IAAI,IAAI,8BAA8B;IAOtC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAE,YAAY,CAAC,MAAM,CAA2B,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAsE/G,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAEvD,WAAW,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAC,EAAE,iBAAiB,GAAG,oBAAoB;IAqB7F,cAAc,IAAI,IAAI;IAKtB,sBAAsB,IAAI,IAAI;IAE9B,SAAS;IAET,IAAI,GAAG,IAAI,uBAAuB,CAAmB;IACrD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,SAAS,IAAI,GAAG,CAAkF;IACtG,IAAI,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAsB;IAEzE,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"ValueEventCollectionBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/collection/ValueEventCollectionBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,uBAAuB,EAAC,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAGH,GAAG,EAIH,QAAQ,EACR,MAAM,EAGN,YAAY,EAEZ,SAAS,EACT,IAAI,EACJ,YAAY,EACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,OAAO,EAAM,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAC,eAAe,EAAE,aAAa,EAAE,IAAI,EAAa,MAAM,kBAAkB,CAAA;AAEjF,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAA;AAGlE,KAAK,iBAAiB,GAAG;IACrB,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,aAAa,CAAA;CAC/B,CAAA;AAED,qBAAa,8BAA+B,YAAW,UAAU;;gBAUjD,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,uBAAuB;IA+BrE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS;IAEvD,IAAI,IAAI,8BAA8B;IAOtC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAE,YAAY,CAAC,MAAM,CAA2B,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAuE/G,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAEvD,WAAW,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAC,EAAE,iBAAiB,GAAG,oBAAoB;IAoB7F,cAAc,IAAI,IAAI;IAKtB,sBAAsB,IAAI,IAAI;IAE9B,SAAS;IAET,IAAI,GAAG,IAAI,uBAAuB,CAAmB;IACrD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,SAAS,IAAI,GAAG,CAAkF;IACtG,IAAI,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAsB;IAEzE,QAAQ,IAAI,MAAM;CAGrB"}
@@ -84,6 +84,9 @@ export class ValueEventCollectionBoxAdapter {
84
84
  if (low.position === position) {
85
85
  return Option.wrap(low);
86
86
  }
87
+ if (high.position === position) {
88
+ return Option.wrap(high);
89
+ }
87
90
  if (low.interpolation.type === "none") {
88
91
  return Option.wrap(this.createEvent({
89
92
  position,
@@ -134,15 +137,14 @@ export class ValueEventCollectionBoxAdapter {
134
137
  }
135
138
  subscribeChange(observer) { return __classPrivateFieldGet(this, _ValueEventCollectionBoxAdapter_changeNotifier, "f").subscribe(observer); }
136
139
  createEvent({ position, index, value, interpolation }) {
137
- const existing = __classPrivateFieldGet(this, _ValueEventCollectionBoxAdapter_adapters, "f").values().find(e => e.position === position && e.index === index);
140
+ // Position is stored as integer in box, so truncate for comparison to prevent duplicates
141
+ const intPosition = Math.trunc(position);
142
+ const existing = __classPrivateFieldGet(this, _ValueEventCollectionBoxAdapter_adapters, "f").values().find(event => event.position === intPosition && event.index === index);
138
143
  if (isDefined(existing)) {
139
- console.warn(`createEvent: DUPLICATE POSITION/INDEX!`, {
140
- existingUUID: UUID.toString(existing.uuid),
141
- position,
142
- index,
143
- collectionUUID: UUID.toString(__classPrivateFieldGet(this, _ValueEventCollectionBoxAdapter_box, "f").address.uuid),
144
- stack: new Error().stack
145
- });
144
+ // Return an existing event instead of creating a duplicate-update its value
145
+ existing.box.value.setValue(value);
146
+ InterpolationFieldAdapter.write(existing.box.interpolation, interpolation);
147
+ return existing;
146
148
  }
147
149
  const eventBox = ValueEventBox.create(__classPrivateFieldGet(this, _ValueEventCollectionBoxAdapter_context, "f").boxGraph, UUID.generate(), box => {
148
150
  box.position.setValue(position);
@@ -1 +1 @@
1
- {"version":3,"file":"ValueEventBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/event/ValueEventBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,GAAG,EACH,MAAM,EACN,UAAU,EAGV,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,aAAa,EAAE,IAAI,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,OAAO,EAAE,KAAK,EAAsB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAC,8BAA8B,EAAC,MAAM,8CAA8C,CAAA;AAC3F,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAG3D,KAAK,YAAY,GAAG;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;CACvC,CAAA;AAED,qBAAa,oBAAqB,YAAW,UAAU,EAAE,UAAU,EAAE,UAAU;;IAC3E,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAM3D;IAED,QAAQ,CAAC,IAAI,iBAAgB;gBAYjB,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,aAAa;IAgD3D,UAAU,IAAI,IAAI;IAIlB,YAAY,IAAI,IAAI;IAKpB,SAAS,IAAI,IAAI;IAKjB,IAAI,GAAG,IAAI,aAAa,CAAmB;IAC3C,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,QAAQ,IAAI,GAAG,CAAuC;IAC1D,IAAI,KAAK,IAAI,GAAG,CAAoC;IACpD,IAAI,aAAa,CAAC,KAAK,EAAE,aAAa,EAAmE;IACzG,IAAI,aAAa,IAAI,aAAa,CAAmC;IACrE,IAAI,KAAK,IAAI,MAAM,CAAoC;IACvD,IAAI,UAAU,IAAI,OAAO,CAA0B;IACnD,IAAI,UAAU,IAAI,MAAM,CAAC,8BAA8B,CAAC,CAGvD;IAED,MAAM,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,oBAAoB;IAepD,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAStC,QAAQ,IAAI,MAAM;CACrB"}
1
+ {"version":3,"file":"ValueEventBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/event/ValueEventBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,GAAG,EACH,MAAM,EAEN,UAAU,EAGV,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,aAAa,EAAE,IAAI,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,OAAO,EAAE,KAAK,EAAsB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAC,8BAA8B,EAAC,MAAM,8CAA8C,CAAA;AAC3F,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAG3D,KAAK,YAAY,GAAG;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;CACvC,CAAA;AAED,qBAAa,oBAAqB,YAAW,UAAU,EAAE,UAAU,EAAE,UAAU;;IAC3E,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAO3D;IAED,QAAQ,CAAC,IAAI,iBAAgB;gBAYjB,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,aAAa;IAgD3D,UAAU,IAAI,IAAI;IAIlB,YAAY,IAAI,IAAI;IAKpB,SAAS,IAAI,IAAI;IAKjB,IAAI,GAAG,IAAI,aAAa,CAAmB;IAC3C,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,QAAQ,IAAI,GAAG,CAAuC;IAC1D,IAAI,KAAK,IAAI,GAAG,CAAoC;IACpD,IAAI,aAAa,CAAC,KAAK,EAAE,aAAa,EAAmE;IACzG,IAAI,aAAa,IAAI,aAAa,CAAmC;IACrE,IAAI,KAAK,IAAI,MAAM,CAAoC;IACvD,IAAI,UAAU,IAAI,OAAO,CAA0B;IACnD,IAAI,UAAU,IAAI,MAAM,CAAC,8BAA8B,CAAC,CAGvD;IAED,MAAM,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,oBAAoB;IAapD,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAStC,QAAQ,IAAI,MAAM;CACrB"}
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _ValueEventBoxAdapter_terminator, _ValueEventBoxAdapter_context, _ValueEventBoxAdapter_box, _ValueEventBoxAdapter_interpolation, _ValueEventBoxAdapter_interpolationSubscription, _ValueEventBoxAdapter_isSelected;
13
- import { Arrays, Cache, Terminable, Terminator, UUID } from "@opendaw/lib-std";
13
+ import { Arrays, Cache, panic, Terminable, Terminator, UUID } from "@opendaw/lib-std";
14
14
  import { Propagation } from "@opendaw/lib-box";
15
15
  import { Pointers } from "@opendaw/studio-enums";
16
16
  import { ValueEventBox } from "@opendaw/studio-boxes";
@@ -94,8 +94,6 @@ export class ValueEventBoxAdapter {
94
94
  copyTo(options) {
95
95
  const position = options?.position ?? this.position;
96
96
  const index = options?.index ?? this.index;
97
- // DEBUG: Log copyTo calls
98
- console.debug(`copyTo: position=${position}, index=${index}`, new Error().stack);
99
97
  const eventBox = ValueEventBox.create(__classPrivateFieldGet(this, _ValueEventBoxAdapter_context, "f").boxGraph, UUID.generate(), box => {
100
98
  box.position.setValue(position);
101
99
  box.index.setValue(index);
@@ -117,6 +115,9 @@ export class ValueEventBoxAdapter {
117
115
  }
118
116
  _ValueEventBoxAdapter_terminator = new WeakMap(), _ValueEventBoxAdapter_context = new WeakMap(), _ValueEventBoxAdapter_box = new WeakMap(), _ValueEventBoxAdapter_interpolation = new WeakMap(), _ValueEventBoxAdapter_interpolationSubscription = new WeakMap(), _ValueEventBoxAdapter_isSelected = new WeakMap();
119
117
  ValueEventBoxAdapter.Comparator = (a, b) => {
118
+ if (a === b) {
119
+ return panic(`${a} is equal to itself`);
120
+ }
120
121
  const positionDiff = a.position - b.position;
121
122
  if (positionDiff !== 0) {
122
123
  return positionDiff;
@@ -125,5 +126,5 @@ ValueEventBoxAdapter.Comparator = (a, b) => {
125
126
  if (indexDiff !== 0) {
126
127
  return indexDiff;
127
128
  }
128
- throw new Error(`${a} and ${b} are identical in terms of comparison`);
129
+ return panic(`${a} and ${b} are identical in terms of comparison`);
129
130
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-adapters",
3
- "version": "0.0.75",
3
+ "version": "0.0.77",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,18 +23,18 @@
23
23
  "test": "echo \"No tests to run\""
24
24
  },
25
25
  "dependencies": {
26
- "@opendaw/lib-box": "^0.0.66",
27
- "@opendaw/lib-dsp": "^0.0.64",
28
- "@opendaw/lib-fusion": "^0.0.70",
29
- "@opendaw/lib-runtime": "^0.0.64",
30
- "@opendaw/lib-std": "^0.0.64",
31
- "@opendaw/studio-boxes": "^0.0.67",
32
- "@opendaw/studio-enums": "^0.0.56",
26
+ "@opendaw/lib-box": "^0.0.67",
27
+ "@opendaw/lib-dsp": "^0.0.66",
28
+ "@opendaw/lib-fusion": "^0.0.72",
29
+ "@opendaw/lib-runtime": "^0.0.65",
30
+ "@opendaw/lib-std": "^0.0.65",
31
+ "@opendaw/studio-boxes": "^0.0.69",
32
+ "@opendaw/studio-enums": "^0.0.58",
33
33
  "soundfont2": "^0.5.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@opendaw/eslint-config": "^0.0.27",
37
37
  "@opendaw/typescript-config": "^0.0.28"
38
38
  },
39
- "gitHead": "af2cfe60c58630654f16a7dd2c564dd3ee52d185"
39
+ "gitHead": "8c01a73080270355a98b9377e0ba16e8226fffa4"
40
40
  }