@opendaw/studio-adapters 0.0.88 → 0.0.90
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/timeline/RegionEditing.d.ts.map +1 -1
- package/dist/timeline/RegionEditing.js +4 -1
- package/dist/timeline/SignatureTrackAdapter.d.ts +6 -0
- package/dist/timeline/SignatureTrackAdapter.d.ts.map +1 -1
- package/dist/timeline/SignatureTrackAdapter.js +5 -0
- package/dist/timeline/TrackBoxAdapter.js +1 -1
- package/dist/timeline/TrackRegions.d.ts.map +1 -1
- package/dist/timeline/TrackRegions.js +27 -2
- package/dist/transfer/TransferAudioUnits.d.ts +8 -7
- package/dist/transfer/TransferAudioUnits.d.ts.map +1 -1
- package/dist/transfer/TransferAudioUnits.js +11 -3
- package/dist/transfer/TransferUtils.d.ts +2 -2
- package/dist/transfer/TransferUtils.d.ts.map +1 -1
- package/dist/transfer/TransferUtils.js +14 -13
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionEditing.d.ts","sourceRoot":"","sources":["../../src/timeline/RegionEditing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAErC,OAAO,EAAC,mBAAmB,EAAoB,MAAM,sBAAsB,CAAA;AAE3E,yBAAiB,aAAa,CAAC;IACpB,MAAM,GAAG,GAAI,QAAQ,mBAAmB,EAAE,KAAK,IAAI,EAAE,aAAa,OAAO,KAAG,IAclF,CAAA;IAEM,MAAM,IAAI,GAAI,QAAQ,mBAAmB,EAAE,OAAO,IAAI,EAAE,KAAK,IAAI,KAAG,
|
|
1
|
+
{"version":3,"file":"RegionEditing.d.ts","sourceRoot":"","sources":["../../src/timeline/RegionEditing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAErC,OAAO,EAAC,mBAAmB,EAAoB,MAAM,sBAAsB,CAAA;AAE3E,yBAAiB,aAAa,CAAC;IACpB,MAAM,GAAG,GAAI,QAAQ,mBAAmB,EAAE,KAAK,IAAI,EAAE,aAAa,OAAO,KAAG,IAclF,CAAA;IAEM,MAAM,IAAI,GAAI,QAAQ,mBAAmB,EAAE,OAAO,IAAI,EAAE,KAAK,IAAI,KAAG,IAc1E,CAAA;CACJ"}
|
|
@@ -23,8 +23,11 @@ export var RegionEditing;
|
|
|
23
23
|
RegionEditing.clip = (region, begin, end) => {
|
|
24
24
|
if (UnionAdapterTypes.isLoopableRegion(region)) {
|
|
25
25
|
const { position, complete, loopOffset, loopDuration } = region;
|
|
26
|
+
if (begin - position <= 0) {
|
|
27
|
+
return panic(`first part duration will be zero or negative(${begin - position})`);
|
|
28
|
+
}
|
|
26
29
|
if (complete - end <= 0) {
|
|
27
|
-
return panic(`duration will zero or negative(${complete - end})`);
|
|
30
|
+
return panic(`second part duration will be zero or negative(${complete - end})`);
|
|
28
31
|
}
|
|
29
32
|
region.duration = begin - position;
|
|
30
33
|
region.copyTo({
|
|
@@ -32,6 +32,12 @@ export declare class SignatureTrackAdapter implements Terminable {
|
|
|
32
32
|
floorToBar(position: ppqn): ppqn;
|
|
33
33
|
ceilToBar(position: ppqn): ppqn;
|
|
34
34
|
roundToBar(position: ppqn): ppqn;
|
|
35
|
+
toParts(position: ppqn): {
|
|
36
|
+
bars: int;
|
|
37
|
+
beats: int;
|
|
38
|
+
semiquavers: int;
|
|
39
|
+
ticks: int;
|
|
40
|
+
};
|
|
35
41
|
barLengthAt(position: ppqn): ppqn;
|
|
36
42
|
getBarInterval(position: ppqn): {
|
|
37
43
|
position: ppqn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureTrackAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/SignatureTrackAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EAEH,QAAQ,EAER,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,UAAU,EAGb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,IAAI,EAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAC,SAAS,EAAqB,cAAc,EAAE,WAAW,EAAC,MAAM,uBAAuB,CAAA;AAI/F,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IAClC,KAAK,EAAE,GAAG,CAAC;IACX,eAAe,EAAE,IAAI,CAAC;IACtB,eAAe,EAAE,GAAG,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,GAAG,CAAA;CACnB,CAAC,CAAA;AAEF,qBAAa,qBAAsB,YAAW,UAAU;;IAOpD,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAG3B,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc;IAoB7F,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAEjD,IAAI,OAAO,IAAI,kBAAkB,CAAuB;IACxD,IAAI,OAAO,IAAI,OAAO,CAAiD;IACvE,IAAI,MAAM,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAA8B;IACzE,IAAI,IAAI,IAAI,GAAG,CAA+B;IAC9C,IAAI,gBAAgB,IAAI,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAG3C;IAED,QAAQ,IAAI,OAAO;IAEnB,cAAc,IAAI,IAAI;IAEtB,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAU/C,UAAU,IAAI,gBAAgB,CAAC,cAAc,CAAC;IAehD,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,IAAI;IA8BvD,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IA+BtD,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,IAAI;IAqCnE,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;IAEvD,SAAS,CAAC,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI;IAkEpE,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAMhC,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAM/B,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAMhC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAKjC,cAAc,CAAC,QAAQ,EAAE,IAAI,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;IAOlE,SAAS,IAAI,IAAI;CACpB"}
|
|
1
|
+
{"version":3,"file":"SignatureTrackAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/SignatureTrackAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EAEH,QAAQ,EAER,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,UAAU,EAGb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,IAAI,EAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAC,SAAS,EAAqB,cAAc,EAAE,WAAW,EAAC,MAAM,uBAAuB,CAAA;AAI/F,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IAClC,KAAK,EAAE,GAAG,CAAC;IACX,eAAe,EAAE,IAAI,CAAC;IACtB,eAAe,EAAE,GAAG,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,GAAG,CAAA;CACnB,CAAC,CAAA;AAEF,qBAAa,qBAAsB,YAAW,UAAU;;IAOpD,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAG3B,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc;IAoB7F,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAEjD,IAAI,OAAO,IAAI,kBAAkB,CAAuB;IACxD,IAAI,OAAO,IAAI,OAAO,CAAiD;IACvE,IAAI,MAAM,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAA8B;IACzE,IAAI,IAAI,IAAI,GAAG,CAA+B;IAC9C,IAAI,gBAAgB,IAAI,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAG3C;IAED,QAAQ,IAAI,OAAO;IAEnB,cAAc,IAAI,IAAI;IAEtB,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAU/C,UAAU,IAAI,gBAAgB,CAAC,cAAc,CAAC;IAehD,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,IAAI;IA8BvD,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IA+BtD,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,IAAI;IAqCnE,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;IAEvD,SAAS,CAAC,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI;IAkEpE,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAMhC,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAM/B,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAMhC,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE;IAMhF,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAKjC,cAAc,CAAC,QAAQ,EAAE,IAAI,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;IAOlE,SAAS,IAAI,IAAI;CACpB"}
|
|
@@ -227,6 +227,11 @@ export class SignatureTrackAdapter {
|
|
|
227
227
|
const barsFromEvent = Math.round((position - event.accumulatedPpqn) / barPpqn);
|
|
228
228
|
return event.accumulatedPpqn + barsFromEvent * barPpqn;
|
|
229
229
|
}
|
|
230
|
+
toParts(position) {
|
|
231
|
+
const { event } = __classPrivateFieldGet(this, _SignatureTrackAdapter_instances, "m", _SignatureTrackAdapter_findSignatureEventAt).call(this, position);
|
|
232
|
+
const parts = PPQN.toParts(position - event.accumulatedPpqn, event.nominator, event.denominator);
|
|
233
|
+
return { ...parts, bars: parts.bars + event.accumulatedBars };
|
|
234
|
+
}
|
|
230
235
|
barLengthAt(position) {
|
|
231
236
|
const [nom, denom] = this.signatureAt(position);
|
|
232
237
|
return PPQN.fromSignature(nom, denom);
|
|
@@ -32,9 +32,9 @@ export class TrackBoxAdapter {
|
|
|
32
32
|
__classPrivateFieldSet(this, _TrackBoxAdapter_context, context, "f");
|
|
33
33
|
__classPrivateFieldSet(this, _TrackBoxAdapter_box, box, "f");
|
|
34
34
|
__classPrivateFieldSet(this, _TrackBoxAdapter_terminator, new Terminator(), "f");
|
|
35
|
+
__classPrivateFieldSet(this, _TrackBoxAdapter_listIndex, __classPrivateFieldGet(this, _TrackBoxAdapter_terminator, "f").own(new DefaultObservableValue(-1)), "f");
|
|
35
36
|
__classPrivateFieldSet(this, _TrackBoxAdapter_clips, __classPrivateFieldGet(this, _TrackBoxAdapter_terminator, "f").own(new TrackClips(this, context.boxAdapters)), "f");
|
|
36
37
|
__classPrivateFieldSet(this, _TrackBoxAdapter_regions, __classPrivateFieldGet(this, _TrackBoxAdapter_terminator, "f").own(new TrackRegions(this, context.boxAdapters)), "f");
|
|
37
|
-
__classPrivateFieldSet(this, _TrackBoxAdapter_listIndex, __classPrivateFieldGet(this, _TrackBoxAdapter_terminator, "f").own(new DefaultObservableValue(-1)), "f");
|
|
38
38
|
}
|
|
39
39
|
catchupAndSubscribePath(observer) {
|
|
40
40
|
const path = [Option.None, Option.None];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackRegions.d.ts","sourceRoot":"","sources":["../../src/timeline/TrackRegions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAA8B,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAA;AAEjH,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAG1C,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAA;IAC1C,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAA;CAC/C;AAED,qBAAa,YAAY;;
|
|
1
|
+
{"version":3,"file":"TrackRegions.d.ts","sourceRoot":"","sources":["../../src/timeline/TrackRegions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAA8B,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAA;AAEjH,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAG1C,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAA;IAC1C,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAA;CAC/C;AAED,qBAAa,YAAY;;gBAWT,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW;IAuC9D,IAAI,eAAe,IAAI,eAAe,CAA+B;IACrE,IAAI,UAAU,IAAI,gBAAgB,CAAC,mBAAmB,CAAC,CAA0B;IACjF,IAAI,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAwB;IAE5F,iBAAiB,IAAI,IAAI;IA6BzB,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,YAAY;IAKjE,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IACxD,cAAc,IAAI,IAAI;IACtB,SAAS;CACZ"}
|
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _TrackRegions_trackBoxAdapter, _TrackRegions_terminator, _TrackRegions_changeNotifier, _TrackRegions_regionsListeners, _TrackRegions_collection, _TrackRegions_adapters;
|
|
12
|
+
var _TrackRegions_trackBoxAdapter, _TrackRegions_terminator, _TrackRegions_changeNotifier, _TrackRegions_regionsListeners, _TrackRegions_collection, _TrackRegions_adapters, _TrackRegions_overlapCheckPending;
|
|
13
13
|
import { RegionCollection } from "@opendaw/lib-dsp";
|
|
14
14
|
import { assert, Listeners, Notifier, Terminator, UUID } from "@opendaw/lib-std";
|
|
15
15
|
import { Pointers } from "@opendaw/studio-enums";
|
|
@@ -22,6 +22,7 @@ export class TrackRegions {
|
|
|
22
22
|
_TrackRegions_regionsListeners.set(this, void 0);
|
|
23
23
|
_TrackRegions_collection.set(this, void 0);
|
|
24
24
|
_TrackRegions_adapters.set(this, void 0);
|
|
25
|
+
_TrackRegions_overlapCheckPending.set(this, false);
|
|
25
26
|
__classPrivateFieldSet(this, _TrackRegions_trackBoxAdapter, adapter, "f");
|
|
26
27
|
__classPrivateFieldSet(this, _TrackRegions_terminator, new Terminator(), "f");
|
|
27
28
|
__classPrivateFieldSet(this, _TrackRegions_changeNotifier, __classPrivateFieldGet(this, _TrackRegions_terminator, "f").own(new Notifier()), "f");
|
|
@@ -61,6 +62,30 @@ export class TrackRegions {
|
|
|
61
62
|
get adapters() { return __classPrivateFieldGet(this, _TrackRegions_adapters, "f"); }
|
|
62
63
|
onIndexingChanged() {
|
|
63
64
|
__classPrivateFieldGet(this, _TrackRegions_collection, "f").onIndexingChanged();
|
|
65
|
+
if (!__classPrivateFieldGet(this, _TrackRegions_overlapCheckPending, "f")) {
|
|
66
|
+
__classPrivateFieldSet(this, _TrackRegions_overlapCheckPending, true, "f");
|
|
67
|
+
const stack = new Error().stack;
|
|
68
|
+
queueMicrotask(() => {
|
|
69
|
+
__classPrivateFieldSet(this, _TrackRegions_overlapCheckPending, false, "f");
|
|
70
|
+
const regions = __classPrivateFieldGet(this, _TrackRegions_collection, "f").asArray();
|
|
71
|
+
for (let i = 1; i < regions.length; i++) {
|
|
72
|
+
const prev = regions[i - 1];
|
|
73
|
+
const next = regions[i];
|
|
74
|
+
if (prev.complete > next.position) {
|
|
75
|
+
console.error("[TrackRegions] Overlap after position change", {
|
|
76
|
+
track: __classPrivateFieldGet(this, _TrackRegions_trackBoxAdapter, "f").listIndex,
|
|
77
|
+
prev: { p: prev.position, d: prev.duration, c: prev.complete, type: prev.toString() },
|
|
78
|
+
next: { p: next.position, d: next.duration, c: next.complete, type: next.toString() },
|
|
79
|
+
allRegions: regions.map(region => ({
|
|
80
|
+
p: region.position, d: region.duration, c: region.complete, sel: region.isSelected
|
|
81
|
+
})),
|
|
82
|
+
stack
|
|
83
|
+
});
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
64
89
|
this.dispatchChange();
|
|
65
90
|
}
|
|
66
91
|
catchupAndSubscribe(listener) {
|
|
@@ -71,4 +96,4 @@ export class TrackRegions {
|
|
|
71
96
|
dispatchChange() { __classPrivateFieldGet(this, _TrackRegions_changeNotifier, "f").notify(); }
|
|
72
97
|
terminate() { __classPrivateFieldGet(this, _TrackRegions_terminator, "f").terminate(); }
|
|
73
98
|
}
|
|
74
|
-
_TrackRegions_trackBoxAdapter = new WeakMap(), _TrackRegions_terminator = new WeakMap(), _TrackRegions_changeNotifier = new WeakMap(), _TrackRegions_regionsListeners = new WeakMap(), _TrackRegions_collection = new WeakMap(), _TrackRegions_adapters = new WeakMap();
|
|
99
|
+
_TrackRegions_trackBoxAdapter = new WeakMap(), _TrackRegions_terminator = new WeakMap(), _TrackRegions_changeNotifier = new WeakMap(), _TrackRegions_regionsListeners = new WeakMap(), _TrackRegions_collection = new WeakMap(), _TrackRegions_adapters = new WeakMap(), _TrackRegions_overlapCheckPending = new WeakMap();
|
|
@@ -2,17 +2,18 @@ import { int } from "@opendaw/lib-std";
|
|
|
2
2
|
import { AudioUnitBox } from "@opendaw/studio-boxes";
|
|
3
3
|
import { ProjectSkeleton } from "../project/ProjectSkeleton";
|
|
4
4
|
export declare namespace TransferAudioUnits {
|
|
5
|
-
|
|
6
|
-
* Copies audio units and their dependencies to a target project.
|
|
7
|
-
* Preserved resources already present in the target graph are shared, not duplicated.
|
|
8
|
-
* @returns the newly created audio unit boxes in the target graph
|
|
9
|
-
*/
|
|
10
|
-
const transfer: (audioUnitBoxes: ReadonlyArray<AudioUnitBox>, { boxGraph: targetBoxGraph, mandatoryBoxes: { primaryAudioBusBox, rootBox } }: ProjectSkeleton, options?: {
|
|
5
|
+
type TransferOptions = {
|
|
11
6
|
insertIndex?: int;
|
|
12
7
|
deleteSource?: boolean;
|
|
13
8
|
includeAux?: boolean;
|
|
14
9
|
includeBus?: boolean;
|
|
15
10
|
excludeTimeline?: boolean;
|
|
16
|
-
}
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Copies audio units and their dependencies to a target project.
|
|
14
|
+
* Preserved resources already present in the target graph are shared, not duplicated.
|
|
15
|
+
* @returns the newly created audio unit boxes in the target graph
|
|
16
|
+
*/
|
|
17
|
+
const transfer: (audioUnitBoxes: ReadonlyArray<AudioUnitBox>, { boxGraph: targetBoxGraph, mandatoryBoxes: { primaryAudioBusBox, rootBox } }: ProjectSkeleton, options?: TransferOptions) => ReadonlyArray<AudioUnitBox>;
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=TransferAudioUnits.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransferAudioUnits.d.ts","sourceRoot":"","sources":["../../src/transfer/TransferAudioUnits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"TransferAudioUnits.d.ts","sourceRoot":"","sources":["../../src/transfer/TransferAudioUnits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAC,YAAY,EAAU,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAG1D,yBAAiB,kBAAkB,CAAC;IAChC,KAAY,eAAe,GAAG;QAC1B,WAAW,CAAC,EAAE,GAAG,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAA;IACD;;;;OAIG;IACI,MAAM,QAAQ,GAAI,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,+EAA2E,eAAe,EAC1F,UAAS,eAAoB,KAAG,aAAa,CAAC,YAAY,CAwBlF,CAAA;CACJ"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { asInstanceOf } from "@opendaw/lib-std";
|
|
2
|
-
import {
|
|
2
|
+
import { IndexedBox } from "@opendaw/lib-box";
|
|
3
|
+
import { AudioUnitBox, RootBox } from "@opendaw/studio-boxes";
|
|
3
4
|
import { TransferUtils } from "./TransferUtils";
|
|
4
5
|
export var TransferAudioUnits;
|
|
5
6
|
(function (TransferAudioUnits) {
|
|
@@ -18,9 +19,16 @@ export var TransferAudioUnits;
|
|
|
18
19
|
}).boxes);
|
|
19
20
|
const uuidMap = TransferUtils.generateMap(audioUnitBoxes, dependencies, rootBox.audioUnits.address.uuid, primaryAudioBusBox.address.uuid);
|
|
20
21
|
TransferUtils.copyBoxes(uuidMap, targetBoxGraph, audioUnitBoxes, dependencies);
|
|
21
|
-
TransferUtils.reorderAudioUnits(uuidMap, audioUnitBoxes, rootBox);
|
|
22
|
-
|
|
22
|
+
TransferUtils.reorderAudioUnits(uuidMap, audioUnitBoxes, rootBox, options.insertIndex);
|
|
23
|
+
const result = audioUnitBoxes.map(source => asInstanceOf(rootBox.graph
|
|
23
24
|
.findBox(uuidMap.get(source.address.uuid).target)
|
|
24
25
|
.unwrap("Target AudioUnit has not been copied"), AudioUnitBox));
|
|
26
|
+
if (options.deleteSource === true) {
|
|
27
|
+
const sourceRootBox = asInstanceOf(audioUnitBoxes[0].collection.targetVertex.unwrap().box, RootBox);
|
|
28
|
+
audioUnitBoxes.forEach(box => box.delete());
|
|
29
|
+
IndexedBox.collectIndexedBoxes(sourceRootBox.audioUnits, AudioUnitBox)
|
|
30
|
+
.forEach((box, index) => box.index.setValue(index));
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
25
33
|
};
|
|
26
34
|
})(TransferAudioUnits || (TransferAudioUnits = {}));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ppqn } from "@opendaw/lib-dsp";
|
|
2
|
-
import { SortedSet, UUID } from "@opendaw/lib-std";
|
|
2
|
+
import { int, SortedSet, UUID } from "@opendaw/lib-std";
|
|
3
3
|
import { AudioUnitBox, RootBox } from "@opendaw/studio-boxes";
|
|
4
4
|
import { Box, BoxGraph } from "@opendaw/lib-box";
|
|
5
5
|
import { ProjectSkeleton } from "../project/ProjectSkeleton";
|
|
@@ -13,7 +13,7 @@ export declare namespace TransferUtils {
|
|
|
13
13
|
const shouldExclude: (box: Box) => boolean;
|
|
14
14
|
const generateMap: (audioUnitBoxes: ReadonlyArray<AudioUnitBox>, dependencies: ReadonlyArray<Box>, rootBoxUUID: UUID.Bytes, masterBusBoxUUID: UUID.Bytes) => SortedSet<UUID.Bytes, UUIDMapper>;
|
|
15
15
|
const copyBoxes: (uuidMap: SortedSet<UUID.Bytes, UUIDMapper>, targetBoxGraph: BoxGraph, audioUnitBoxes: ReadonlyArray<AudioUnitBox>, dependencies: ReadonlyArray<Box>) => void;
|
|
16
|
-
const reorderAudioUnits: (uuidMap: SortedSet<UUID.Bytes, UUIDMapper>, audioUnitBoxes: ReadonlyArray<AudioUnitBox>, rootBox: RootBox) => void;
|
|
16
|
+
const reorderAudioUnits: (uuidMap: SortedSet<UUID.Bytes, UUIDMapper>, audioUnitBoxes: ReadonlyArray<AudioUnitBox>, rootBox: RootBox, insertIndex?: int) => void;
|
|
17
17
|
const extractRegions: (regionBoxes: ReadonlyArray<AnyRegionBox>, { boxGraph, mandatoryBoxes: { primaryAudioBusBox, rootBox } }: ProjectSkeleton, insertPosition?: ppqn) => void;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=TransferUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransferUtils.d.ts","sourceRoot":"","sources":["../../src/transfer/TransferUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"TransferUtils.d.ts","sourceRoot":"","sources":["../../src/transfer/TransferUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAMH,GAAG,EAMH,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,YAAY,EAAiC,OAAO,EAAW,MAAM,uBAAuB,CAAA;AACpG,OAAO,EAAU,GAAG,EAAE,QAAQ,EAA2B,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAC,YAAY,EAAgB,MAAM,WAAW,CAAA;AAErD,yBAAiB,aAAa,CAAC;IAC3B,KAAY,UAAU,GAAG;QAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;QAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAA;KAAE,CAAA;IAI5D,MAAM,wBAAwB,GAAI,KAAK,GAAG,KAAG,OACqB,CAAA;IAClE,MAAM,aAAa,GAAI,KAAK,GAAG,KAAG,OAA6D,CAAA;IAE/F,MAAM,WAAW,GAAI,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,cAAc,aAAa,CAAC,GAAG,CAAC,EAChC,aAAa,IAAI,CAAC,KAAK,EACvB,kBAAkB,IAAI,CAAC,KAAK,KAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CA0B1F,CAAA;IAEM,MAAM,SAAS,GAAI,SAAS,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1C,gBAAgB,QAAQ,EACxB,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,cAAc,aAAa,CAAC,GAAG,CAAC,KAAG,IAmC5D,CAAA;IAEM,MAAM,iBAAiB,GAAI,SAAS,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1C,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,SAAS,OAAO,EAChB,cAAc,GAAG,KAAG,IAYrD,CAAA;IAEM,MAAM,cAAc,GAAI,aAAa,aAAa,CAAC,YAAY,CAAC,EACxC,+DAA2D,eAAe,EAC1E,iBAAgB,IAAU,KAAG,IA8C3D,CAAA;CACJ"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { Arrays, asInstanceOf, assert, ByteArrayInput, isInstanceOf, SetMultimap, UUID } from "@opendaw/lib-std";
|
|
1
|
+
import { Arrays, asInstanceOf, assert, ByteArrayInput, clamp, isDefined, isInstanceOf, SetMultimap, UUID } from "@opendaw/lib-std";
|
|
2
2
|
import { AudioUnitBox, AuxSendBox, TrackBox } from "@opendaw/studio-boxes";
|
|
3
3
|
import { IndexedBox, PointerField } from "@opendaw/lib-box";
|
|
4
4
|
import { UnionBoxTypes } from "../unions";
|
|
5
|
-
import { AudioUnitOrdering } from "../factories/AudioUnitOrdering";
|
|
6
5
|
export var TransferUtils;
|
|
7
6
|
(function (TransferUtils) {
|
|
8
7
|
const isSameGraph = ({ graph: a }, { graph: b }) => a === b;
|
|
@@ -77,17 +76,19 @@ export var TransferUtils;
|
|
|
77
76
|
});
|
|
78
77
|
});
|
|
79
78
|
};
|
|
80
|
-
TransferUtils.reorderAudioUnits = (uuidMap, audioUnitBoxes, rootBox) =>
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
const
|
|
87
|
-
const
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
79
|
+
TransferUtils.reorderAudioUnits = (uuidMap, audioUnitBoxes, rootBox, insertIndex) => {
|
|
80
|
+
const targets = audioUnitBoxes
|
|
81
|
+
.toSorted(compareIndex)
|
|
82
|
+
.map(source => asInstanceOf(rootBox.graph
|
|
83
|
+
.findBox(uuidMap.get(source.address.uuid).target)
|
|
84
|
+
.unwrap("Target AudioUnit has not been copied"), AudioUnitBox));
|
|
85
|
+
const targetSet = new Set(targets);
|
|
86
|
+
const allAudioUnits = IndexedBox.collectIndexedBoxes(rootBox.audioUnits, AudioUnitBox);
|
|
87
|
+
const existing = allAudioUnits.filter(box => !targetSet.has(box));
|
|
88
|
+
const position = isDefined(insertIndex) ? clamp(insertIndex, 0, existing.length) : existing.length;
|
|
89
|
+
const ordered = [...existing.slice(0, position), ...targets, ...existing.slice(position)];
|
|
90
|
+
ordered.forEach((box, index) => box.index.setValue(index));
|
|
91
|
+
};
|
|
91
92
|
TransferUtils.extractRegions = (regionBoxes, { boxGraph, mandatoryBoxes: { primaryAudioBusBox, rootBox } }, insertPosition = 0.0) => {
|
|
92
93
|
assert(Arrays.satisfy(regionBoxes, isSameGraph), "Region smust be from the same BoxGraph");
|
|
93
94
|
const regionBoxSet = new Set(regionBoxes);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendaw/studio-adapters",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.90",
|
|
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.
|
|
27
|
-
"@opendaw/lib-dsp": "^0.0.
|
|
28
|
-
"@opendaw/lib-fusion": "^0.0.
|
|
29
|
-
"@opendaw/lib-runtime": "^0.0.
|
|
30
|
-
"@opendaw/lib-std": "^0.0.
|
|
31
|
-
"@opendaw/studio-boxes": "^0.0.
|
|
32
|
-
"@opendaw/studio-enums": "^0.0.
|
|
26
|
+
"@opendaw/lib-box": "^0.0.75",
|
|
27
|
+
"@opendaw/lib-dsp": "^0.0.73",
|
|
28
|
+
"@opendaw/lib-fusion": "^0.0.80",
|
|
29
|
+
"@opendaw/lib-runtime": "^0.0.71",
|
|
30
|
+
"@opendaw/lib-std": "^0.0.70",
|
|
31
|
+
"@opendaw/studio-boxes": "^0.0.77",
|
|
32
|
+
"@opendaw/studio-enums": "^0.0.65",
|
|
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.29"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "731fdb7389fd85b216ec7d7d343baa92cc9eeeee"
|
|
40
40
|
}
|