@opendaw/studio-adapters 0.0.116 → 0.0.118
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/DeviceBox.d.ts +1 -0
- package/dist/DeviceBox.d.ts.map +1 -1
- package/dist/DeviceBox.js +1 -0
- package/dist/IndexedBoxAdapterCollection.d.ts.map +1 -1
- package/dist/IndexedBoxAdapterCollection.js +9 -8
- package/dist/ParameterFieldAdapters.js +1 -1
- package/dist/ScriptDeclaration.d.ts.map +1 -1
- package/dist/ScriptDeclaration.js +10 -1
- package/dist/audio-unit/AudioUnitBoxAdapter.d.ts.map +1 -1
- package/dist/audio-unit/AudioUnitBoxAdapter.js +1 -1
- package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.d.ts.map +1 -1
- package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.js +5 -5
- package/dist/devices/instruments/SoundfontDeviceBoxAdapter.js +1 -1
- package/dist/modular/abstract.js +1 -1
- package/dist/preset/PresetDecoder.d.ts.map +1 -1
- package/dist/preset/PresetDecoder.js +9 -16
- package/dist/preset/PresetEncoder.js +2 -2
- package/dist/timeline/AudioContentBoxAdapter.d.ts +1 -0
- package/dist/timeline/AudioContentBoxAdapter.d.ts.map +1 -1
- package/dist/timeline/SignatureTrackAdapter.js +1 -1
- package/dist/timeline/TrackBoxAdapter.js +1 -1
- package/dist/timeline/clip/AudioClipBoxAdapter.d.ts +1 -0
- package/dist/timeline/clip/AudioClipBoxAdapter.d.ts.map +1 -1
- package/dist/timeline/clip/AudioClipBoxAdapter.js +4 -3
- package/dist/timeline/clip/NoteClipBoxAdapter.js +3 -3
- package/dist/timeline/clip/ValueClipBoxAdapter.js +3 -3
- package/dist/timeline/event/NoteEventBoxAdapter.js +2 -2
- package/dist/timeline/event/ValueEventBoxAdapter.js +2 -2
- package/dist/timeline/region/AudioRegionBoxAdapter.js +3 -3
- package/dist/timeline/region/NoteRegionBoxAdapter.js +4 -4
- package/dist/timeline/region/ValueRegionBoxAdapter.js +4 -4
- package/dist/transfer/TransferAudioUnits.d.ts.map +1 -1
- package/dist/transfer/TransferAudioUnits.js +15 -8
- package/dist/transfer/TransferRegions.js +1 -1
- package/dist/transfer/TransferUtils.d.ts.map +1 -1
- package/dist/transfer/TransferUtils.js +18 -12
- package/package.json +9 -9
package/dist/DeviceBox.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare namespace DeviceBoxUtils {
|
|
|
18
18
|
const isDeviceBox: (box: Box) => box is DeviceBox;
|
|
19
19
|
const isInstrumentDeviceBox: (box: Box) => box is InstrumentDeviceBox;
|
|
20
20
|
const isEffectDeviceBox: (box: Box) => box is EffectDeviceBox;
|
|
21
|
+
const isChainEffectOf: (box: Box, host: Box) => box is EffectDeviceBox;
|
|
21
22
|
const lookupHostField: (box: Maybe<Box>) => PointerField;
|
|
22
23
|
const lookupLabelField: (box: Maybe<Box>) => StringField;
|
|
23
24
|
const lookupEnabledField: (box: Maybe<Box>) => BooleanField;
|
package/dist/DeviceBox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceBox.d.ts","sourceRoot":"","sources":["../src/DeviceBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAA0B,KAAK,EAAQ,MAAM,kBAAkB,CAAA;AAEtE,MAAM,MAAM,SAAS,GAAG;IACpB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,YAAY,CAAA;IACrB,SAAS,EAAE,YAAY,CAAA;CAC1B,GAAG,GAAG,CAAA;AAEP,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;CAC9C,GAAG,SAAS,CAAA;AAEb,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IACtE,KAAK,EAAE,UAAU,CAAA;CACpB,GAAG,SAAS,CAAA;AAEb,yBAAiB,cAAc,CAAC;IACrB,MAAM,WAAW,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,SAAuC,CAAA;IAC9E,MAAM,qBAAqB,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,mBACI,CAAA;IACrD,MAAM,iBAAiB,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,eACqD,CAAA;IAClG,MAAM,eAAe,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAEyB,CAAA;IACpE,MAAM,gBAAgB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,WAE0B,CAAA;IACtE,MAAM,kBAAkB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAE4B,CAAA;IAC1E,MAAM,oBAAoB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAE8B,CAAA;IAC9E,MAAM,gBAAgB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,UAE0B,CAAA;CAChF"}
|
|
1
|
+
{"version":3,"file":"DeviceBox.d.ts","sourceRoot":"","sources":["../src/DeviceBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAA0B,KAAK,EAAQ,MAAM,kBAAkB,CAAA;AAEtE,MAAM,MAAM,SAAS,GAAG;IACpB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,YAAY,CAAA;IACrB,SAAS,EAAE,YAAY,CAAA;CAC1B,GAAG,GAAG,CAAA;AAEP,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;CAC9C,GAAG,SAAS,CAAA;AAEb,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IACtE,KAAK,EAAE,UAAU,CAAA;CACpB,GAAG,SAAS,CAAA;AAEb,yBAAiB,cAAc,CAAC;IACrB,MAAM,WAAW,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,SAAuC,CAAA;IAC9E,MAAM,qBAAqB,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,mBACI,CAAA;IACrD,MAAM,iBAAiB,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,eACqD,CAAA;IAClG,MAAM,eAAe,GAAI,KAAK,GAAG,EAAE,MAAM,GAAG,KAAG,GAAG,IAAI,eACkC,CAAA;IACxF,MAAM,eAAe,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAEyB,CAAA;IACpE,MAAM,gBAAgB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,WAE0B,CAAA;IACtE,MAAM,kBAAkB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAE4B,CAAA;IAC1E,MAAM,oBAAoB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAE8B,CAAA;IAC9E,MAAM,gBAAgB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,UAE0B,CAAA;CAChF"}
|
package/dist/DeviceBox.js
CHANGED
|
@@ -5,6 +5,7 @@ export var DeviceBoxUtils;
|
|
|
5
5
|
DeviceBoxUtils.isDeviceBox = (box) => box.tags.type === "device";
|
|
6
6
|
DeviceBoxUtils.isInstrumentDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && box.tags.deviceType === "instrument";
|
|
7
7
|
DeviceBoxUtils.isEffectDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && (box.tags.deviceType === "audio-effect" || box.tags.deviceType === "midi-effect");
|
|
8
|
+
DeviceBoxUtils.isChainEffectOf = (box, host) => DeviceBoxUtils.isEffectDeviceBox(box) && box.host.targetVertex.mapOr(vertex => vertex.box === host, false);
|
|
8
9
|
DeviceBoxUtils.lookupHostField = (box) => isDefined(box) && "host" in box && isInstanceOf(box.host, PointerField)
|
|
9
10
|
? box.host : panic(`Could not find 'host' field in '${box?.name}'`);
|
|
10
11
|
DeviceBoxUtils.lookupLabelField = (box) => isDefined(box) && "label" in box && isInstanceOf(box.label, StringField)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexedBoxAdapterCollection.d.ts","sourceRoot":"","sources":["../src/IndexedBoxAdapterCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,IAAI,EACJ,GAAG,EAGH,MAAM,EAEN,YAAY,EACZ,UAAU,EACV,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAe,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAA;AAEhE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAEvC,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACjD,UAAU,EAAE,UAAU,CAAA;CACzB;AAED,MAAM,WAAW,gCAAgC,CAAC,CAAC,SAAS,iBAAiB,CAAE,SAAQ,yBAAyB,CAAC,CAAC,CAAC;IAC/G,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;CAC9B;AAED,qBAAa,2BAA2B,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,SAAS,QAAQ,CAAE,YAAW,UAAU;;IAC3G,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EACtB,QAAQ,EAAE,CAAC,GAAG,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;IAW9G,OAAO;IA0BP,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;IAEjB,SAAS,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC,CAAC,GAAG,YAAY;IAItE,mBAAmB,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC,CAAC,GAAG,YAAY;IAKhF,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;IAKxC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;IAE3C,eAAe,IAAI,GAAG;IAUtB,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC;IAS5B,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAIlC,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"IndexedBoxAdapterCollection.d.ts","sourceRoot":"","sources":["../src/IndexedBoxAdapterCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,IAAI,EACJ,GAAG,EAGH,MAAM,EAEN,YAAY,EACZ,UAAU,EACV,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAe,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAA;AAEhE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAEvC,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACjD,UAAU,EAAE,UAAU,CAAA;CACzB;AAED,MAAM,WAAW,gCAAgC,CAAC,CAAC,SAAS,iBAAiB,CAAE,SAAQ,yBAAyB,CAAC,CAAC,CAAC;IAC/G,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;CAC9B;AAED,qBAAa,2BAA2B,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,SAAS,QAAQ,CAAE,YAAW,UAAU;;IAC3G,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EACtB,QAAQ,EAAE,CAAC,GAAG,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;IAW9G,OAAO;IA0BP,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;IAEjB,SAAS,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC,CAAC,GAAG,YAAY;IAItE,mBAAmB,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC,CAAC,GAAG,YAAY;IAKhF,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;IAKxC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;IAE3C,eAAe,IAAI,GAAG;IAUtB,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC;IAS5B,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAIlC,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAkB5C,IAAI,IAAI,GAAG;IAEX,OAAO,IAAI,OAAO;IAElB,SAAS,IAAI,IAAI;CAOpB"}
|
|
@@ -80,25 +80,26 @@ export class IndexedBoxAdapterCollection {
|
|
|
80
80
|
this.moveIndex(adapter.indexField.getValue(), delta);
|
|
81
81
|
}
|
|
82
82
|
moveIndex(startIndex, delta) {
|
|
83
|
+
if (delta === 0) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
83
86
|
const adapters = this.adapters();
|
|
84
87
|
const adapter = adapters[startIndex];
|
|
88
|
+
const newIndex = clamp(startIndex + delta, 0, adapters.length - 1);
|
|
89
|
+
if (newIndex === startIndex) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
85
92
|
if (delta < 0) {
|
|
86
|
-
const newIndex = clamp(startIndex + delta, 0, adapters.length - 1);
|
|
87
93
|
for (let index = newIndex; index < startIndex; index++) {
|
|
88
94
|
adapters[index].indexField.setValue(index + 1);
|
|
89
95
|
}
|
|
90
|
-
adapter.indexField.setValue(newIndex);
|
|
91
96
|
}
|
|
92
|
-
else
|
|
93
|
-
const newIndex = clamp(startIndex + (delta - 1), 0, adapters.length - 1);
|
|
97
|
+
else {
|
|
94
98
|
for (let index = startIndex; index < newIndex; index++) {
|
|
95
99
|
adapters[index + 1].indexField.setValue(index);
|
|
96
100
|
}
|
|
97
|
-
adapter.indexField.setValue(newIndex);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
console.warn(`moveIndex had no effect: startIndex: ${startIndex}, delta: ${delta}`);
|
|
101
101
|
}
|
|
102
|
+
adapter.indexField.setValue(newIndex);
|
|
102
103
|
}
|
|
103
104
|
size() { return __classPrivateFieldGet(this, _IndexedBoxAdapterCollection_entries, "f").size(); }
|
|
104
105
|
isEmpty() { return this.size() === 0; }
|
|
@@ -31,7 +31,7 @@ export class ParameterFieldAdapters {
|
|
|
31
31
|
__classPrivateFieldGet(this, _ParameterFieldAdapters_set, "f").add(adapter);
|
|
32
32
|
return { terminate: () => __classPrivateFieldGet(this, _ParameterFieldAdapters_set, "f").removeByValue(adapter) };
|
|
33
33
|
}
|
|
34
|
-
get(address) { return __classPrivateFieldGet(this, _ParameterFieldAdapters_set, "f").get(address); }
|
|
34
|
+
get(address) { return __classPrivateFieldGet(this, _ParameterFieldAdapters_set, "f").get(address, "parameter field adapter"); }
|
|
35
35
|
opt(address) { return __classPrivateFieldGet(this, _ParameterFieldAdapters_set, "f").opt(address); }
|
|
36
36
|
registerTracks(address, tracks) {
|
|
37
37
|
const key = address.toString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptDeclaration.d.ts","sourceRoot":"","sources":["../src/ScriptDeclaration.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ScriptDeclaration.d.ts","sourceRoot":"","sources":["../src/ScriptDeclaration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { asInstanceOf, isDefined, Notifier, Option, StringMapping, Terminable, ValueMapping } from "@opendaw/lib-std";
|
|
1
|
+
import { asInstanceOf, isDefined, isValidIdentifier, Notifier, Option, StringMapping, Terminable, ValueMapping } from "@opendaw/lib-std";
|
|
2
2
|
import { WerkstattParameterBox } from "@opendaw/studio-boxes";
|
|
3
3
|
const LABEL_LINE = /^\/\/ @label .+$/m;
|
|
4
4
|
const PARAM_LINE = /^\/\/ @param .+$/gm;
|
|
@@ -23,6 +23,9 @@ const parseSingleParam = (line) => {
|
|
|
23
23
|
throw new Error(`Malformed @param: '${line}'`);
|
|
24
24
|
}
|
|
25
25
|
const label = tokens[0];
|
|
26
|
+
if (!isValidIdentifier(label)) {
|
|
27
|
+
throw new Error(`Malformed @param: '${line}' — '${label}' is not a valid identifier`);
|
|
28
|
+
}
|
|
26
29
|
if (tokens.length === 1) {
|
|
27
30
|
return { label, defaultValue: 0, min: 0, max: 1, mapping: "unipolar", unit: "" };
|
|
28
31
|
}
|
|
@@ -115,6 +118,9 @@ export var ScriptDeclaration;
|
|
|
115
118
|
if (tokens.length > 1) {
|
|
116
119
|
throw new Error(`Malformed @sample: '${match[0]}' — expected: // @sample <name>`);
|
|
117
120
|
}
|
|
121
|
+
if (!isValidIdentifier(tokens[0])) {
|
|
122
|
+
throw new Error(`Malformed @sample: '${match[0]}' — '${tokens[0]}' is not a valid identifier`);
|
|
123
|
+
}
|
|
118
124
|
samples.push({ label: tokens[0] });
|
|
119
125
|
}
|
|
120
126
|
return samples;
|
|
@@ -157,6 +163,9 @@ export var ScriptDeclaration;
|
|
|
157
163
|
if (tokens.length === 0 || tokens[0].length === 0) {
|
|
158
164
|
throw new Error(`Malformed @sample: '${line}' — expected: // @sample <name>`);
|
|
159
165
|
}
|
|
166
|
+
if (!isValidIdentifier(tokens[0])) {
|
|
167
|
+
throw new Error(`Malformed @sample: '${line}' — '${tokens[0]}' is not a valid identifier`);
|
|
168
|
+
}
|
|
160
169
|
currentItems.push({ type: "sample", declaration: { label: tokens[0] } });
|
|
161
170
|
}
|
|
162
171
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioUnitBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio-unit/AudioUnitBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAC,MAAM,uBAAuB,CAAA;AACnF,OAAO,EAAS,GAAG,EAAE,MAAM,EAA6B,IAAI,EAAE,YAAY,EAAC,MAAM,kBAAkB,CAAA;AACnG,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAW,uBAAuB,EAAC,MAAM,kBAAkB,CAAA;AACvG,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAA;AAE1E,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAE3D,qBAAa,mBAAoB,YAAW,UAAU,EAAE,UAAU;;IAC9D,MAAM,CAAC,YAAY,uBAA0C;IAE7D,QAAQ,CAAC,OAAO,iBAAgB;IAYhC,QAAQ,CAAC,cAAc;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,YAAY;IAmB1D,IAAI,GAAG,IAAI,YAAY,CAAmB;IAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,IAAI,IAAI,aAAa,CAAoD;IAC7E,IAAI,UAAU,IAAI,MAAM,CAAC,eAAe,GAAG,cAAc,CAAC,CAAoF;IAC9I,IAAI,MAAM,IAAI,eAAe,CAAsB;IACnD,IAAI,KAAK,IAAI,cAAc,CAAqB;IAChD,IAAI,WAAW,IAAI,2BAA2B,CAAC,uBAAuB,EAAE,QAAQ,CAAC,cAAc,CAAC,CAA2B;IAC3H,IAAI,YAAY,IAAI,2BAA2B,CAAC,wBAAwB,EAAE,QAAQ,CAAC,eAAe,CAAC,CAA4B;IAC/H,IAAI,YAAY,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAA+B;IAChF,IAAI,QAAQ,IAAI,2BAA2B,CAAC,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAwB;IACxG,IAAI,MAAM,IAAI,eAAe,CAAsB;IACnD,IAAI,KAAK,IAAI,OAAO,CAA8E;IAClG,IAAI,YAAY,IAAI,OAAO,CAAqF;IAChH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IAED,IAAI,gBAAgB,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA+B;IACrF,IAAI,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAyB;IAChG,IAAI,iBAAiB,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAgC;IACxF,IAAI,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA0B;IAC5E,IAAI,cAAc,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"AudioUnitBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio-unit/AudioUnitBoxAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,7 +67,7 @@ export class AudioUnitBoxAdapter {
|
|
|
67
67
|
get inputField() { return __classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").input; }
|
|
68
68
|
get audioEffectsField() { return __classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").audioEffects; }
|
|
69
69
|
get tracksField() { return __classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").tracks; }
|
|
70
|
-
get minimizedField() { return __classPrivateFieldGet(this, _AudioUnitBoxAdapter_input, "f").adapter().unwrap().minimizedField; }
|
|
70
|
+
get minimizedField() { return __classPrivateFieldGet(this, _AudioUnitBoxAdapter_input, "f").adapter().unwrap("input.adapter").minimizedField; }
|
|
71
71
|
get isAudioUnit() { return true; }
|
|
72
72
|
get label() { return __classPrivateFieldGet(this, _AudioUnitBoxAdapter_input, "f").adapter().mapOr(input => input.labelField.getValue(), ""); }
|
|
73
73
|
deviceHost() { return this; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayfieldSampleBoxAdapter.d.ts","sourceRoot":"","sources":["../../../../src/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PlayfieldSampleBoxAdapter.d.ts","sourceRoot":"","sources":["../../../../src/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,7 @@ export class PlayfieldSampleBoxAdapter {
|
|
|
64
64
|
get tracksField() { return this.audioUnitBoxAdapter().box.tracks; }
|
|
65
65
|
get isAudioUnit() { return false; }
|
|
66
66
|
file() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_file, "f"); }
|
|
67
|
-
fileUUID() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.targetAddress.unwrap().uuid; }
|
|
67
|
+
fileUUID() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.targetAddress.unwrap("file.targetAddr").uuid; }
|
|
68
68
|
resetParameters() {
|
|
69
69
|
__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").mute.reset();
|
|
70
70
|
__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").solo.reset();
|
|
@@ -79,8 +79,8 @@ export class PlayfieldSampleBoxAdapter {
|
|
|
79
79
|
}
|
|
80
80
|
copyToIndex(index) {
|
|
81
81
|
PlayfieldSampleBox.create(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").graph, UUID.generate(), box => {
|
|
82
|
-
box.file.refer(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.targetVertex.unwrap());
|
|
83
|
-
box.device.refer(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").device.targetVertex.unwrap());
|
|
82
|
+
box.file.refer(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.targetVertex.unwrap("file.target"));
|
|
83
|
+
box.device.refer(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").device.targetVertex.unwrap("device.target"));
|
|
84
84
|
box.index.setValue(index);
|
|
85
85
|
box.mute.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").mute.getValue());
|
|
86
86
|
box.solo.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").solo.getValue());
|
|
@@ -103,12 +103,12 @@ export class PlayfieldSampleBoxAdapter {
|
|
|
103
103
|
get audioEffects() {
|
|
104
104
|
return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_audioEffects, "f");
|
|
105
105
|
}
|
|
106
|
-
get labelField() { return asInstanceOf(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.targetVertex.unwrap().box, AudioFileBox).fileName; }
|
|
106
|
+
get labelField() { return asInstanceOf(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.targetVertex.unwrap("file.target").box, AudioFileBox).fileName; }
|
|
107
107
|
get enabledField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").enabled; }
|
|
108
108
|
get minimizedField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").minimized; }
|
|
109
109
|
device() {
|
|
110
110
|
return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_context, "f").boxAdapters
|
|
111
|
-
.adapterFor(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").device.targetVertex.unwrap().box, PlayfieldDeviceBoxAdapter);
|
|
111
|
+
.adapterFor(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").device.targetVertex.unwrap("device.target").box, PlayfieldDeviceBoxAdapter);
|
|
112
112
|
}
|
|
113
113
|
deviceHost() { return this.device().deviceHost(); }
|
|
114
114
|
audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
|
|
@@ -41,7 +41,7 @@ export class SoundfontDeviceBoxAdapter {
|
|
|
41
41
|
__classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_loaderSubscription, "f").terminate();
|
|
42
42
|
__classPrivateFieldSet(this, _SoundfontDeviceBoxAdapter_loaderSubscription, loader.subscribe(state => {
|
|
43
43
|
if (state.type === "loaded") {
|
|
44
|
-
const soundfont = loader.soundfont.unwrap();
|
|
44
|
+
const soundfont = loader.soundfont.unwrap("soundfont");
|
|
45
45
|
__classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_preset, "f").wrap(soundfont.presets[this.presetIndex] ?? soundfont.presets[0]);
|
|
46
46
|
__classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_soundfont, "f").wrap(soundfont);
|
|
47
47
|
}
|
package/dist/modular/abstract.js
CHANGED
|
@@ -45,7 +45,7 @@ export class AbstractModuleAdapter {
|
|
|
45
45
|
get parameters() { return __classPrivateFieldGet(this, _AbstractModuleAdapter_parameters, "f"); }
|
|
46
46
|
get modular() {
|
|
47
47
|
return __classPrivateFieldGet(this, _AbstractModuleAdapter_context, "f").boxAdapters
|
|
48
|
-
.adapterFor(__classPrivateFieldGet(this, _AbstractModuleAdapter_box, "f").attributes.collection.targetVertex.unwrap().box, ModularAdapter);
|
|
48
|
+
.adapterFor(__classPrivateFieldGet(this, _AbstractModuleAdapter_box, "f").attributes.collection.targetVertex.unwrap("attributes.target").box, ModularAdapter);
|
|
49
49
|
}
|
|
50
50
|
terminate() { __classPrivateFieldGet(this, _AbstractModuleAdapter_terminator, "f").terminate(); }
|
|
51
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresetDecoder.d.ts","sourceRoot":"","sources":["../../src/preset/PresetDecoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EAGP,GAAG,EAQN,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAEH,YAAY,EAOf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAG3C,yBAAiB,aAAa,CAAC;IACpB,MAAM,MAAM,GAAI,OAAO,eAAe,EAAE,QAAQ,eAAe,KAAG,aAAa,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"PresetDecoder.d.ts","sourceRoot":"","sources":["../../src/preset/PresetDecoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EAGP,GAAG,EAQN,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAEH,YAAY,EAOf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAG3C,yBAAiB,aAAa,CAAC;IACpB,MAAM,MAAM,GAAI,OAAO,eAAe,EAAE,QAAQ,eAAe,KAAG,aAAa,CAAC,YAAY,CAqElG,CAAA;IAEM,MAAM,eAAe,GAAI,aAAa,WAAW,KAAG,OAY1D,CAAA;IAEM,MAAM,gBAAgB,GAAI,aAAa,WAAW,EAAE,oBAAoB,YAAY,EAAE,UAAU;QACnG,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB,gBAAgB,CAAC,EAAE,OAAO,CAAA;QAC1B,YAAY,CAAC,EAAE,OAAO,CAAA;KACzB,KAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAsHvB,CAAA;IAEM,MAAM,iBAAiB,GAC1B,OAAO,eAAe,EACtB,iBAAiB,YAAY,EAC7B,aAAa,GAAG,EAChB,MAAM,YAAY,CAAC,SAAS,KAC7B,OAAO,CAAC,IAAI,EAAE,MAAM,CA+FtB,CAAA;CACJ"}
|
|
@@ -11,18 +11,13 @@ export var PresetDecoder;
|
|
|
11
11
|
PresetDecoder.decode = (bytes, target) => {
|
|
12
12
|
const header = new ByteArrayInput(bytes.slice(0, 8));
|
|
13
13
|
if (header.readInt() !== PresetHeader.MAGIC_HEADER_OPEN) {
|
|
14
|
-
RuntimeNotifier.
|
|
15
|
-
headline: "Could Not Import Preset",
|
|
16
|
-
message: "Invalid preset file"
|
|
17
|
-
}).then();
|
|
14
|
+
RuntimeNotifier.notify({ message: "Invalid preset file.", icon: "Warning" });
|
|
18
15
|
return [];
|
|
19
16
|
}
|
|
20
17
|
const version = header.readInt();
|
|
21
18
|
if (version !== PresetHeader.FORMAT_VERSION) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
message: `Unsupported preset version ${version} (this build supports ${PresetHeader.FORMAT_VERSION}).`
|
|
25
|
-
}).then();
|
|
19
|
+
console.warn(`Unsupported preset version ${version} (supports ${PresetHeader.FORMAT_VERSION})`);
|
|
20
|
+
RuntimeNotifier.notify({ message: "Unsupported preset version.", icon: "Warning" });
|
|
26
21
|
return [];
|
|
27
22
|
}
|
|
28
23
|
const sourceBoxGraph = new BoxGraph(Option.wrap(BoxIO.create));
|
|
@@ -30,10 +25,8 @@ export var PresetDecoder;
|
|
|
30
25
|
sourceBoxGraph.fromArrayBuffer(bytes.slice(8), false);
|
|
31
26
|
}
|
|
32
27
|
catch (reason) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
message: String(reason)
|
|
36
|
-
}).then();
|
|
28
|
+
console.warn(reason);
|
|
29
|
+
RuntimeNotifier.notify({ message: "Could not import preset.", icon: "Warning" });
|
|
37
30
|
return [];
|
|
38
31
|
}
|
|
39
32
|
const summary = {};
|
|
@@ -56,7 +49,7 @@ export var PresetDecoder;
|
|
|
56
49
|
TransferUtils.reorderAudioUnits(uuidMap, sourceAudioUnitBoxes, rootBox);
|
|
57
50
|
const importedAudioUnits = sourceAudioUnitBoxes
|
|
58
51
|
.map(source => asInstanceOf(rootBox.graph
|
|
59
|
-
.findBox(uuidMap.get(source.address.uuid).target)
|
|
52
|
+
.findBox(uuidMap.get(source.address.uuid, "uuid mapping").target)
|
|
60
53
|
.unwrap("Target AudioUnit has not been copied"), AudioUnitBox))
|
|
61
54
|
.filter(box => box.type.getValue() !== AudioUnitType.Output);
|
|
62
55
|
importedAudioUnits.forEach((audioUnitBox) => {
|
|
@@ -221,7 +214,7 @@ export var PresetDecoder;
|
|
|
221
214
|
}
|
|
222
215
|
const input = new ByteArrayInput(source.toArrayBuffer());
|
|
223
216
|
const key = source.name;
|
|
224
|
-
const uuid = uuidMap.get(source.address.uuid).target;
|
|
217
|
+
const uuid = uuidMap.get(source.address.uuid, "uuid mapping").target;
|
|
225
218
|
targetBoxGraph.createBox(key, uuid, box => box.read(input));
|
|
226
219
|
});
|
|
227
220
|
});
|
|
@@ -308,7 +301,7 @@ export var PresetDecoder;
|
|
|
308
301
|
}, () => {
|
|
309
302
|
effects.forEach((source, i) => {
|
|
310
303
|
const input = new ByteArrayInput(source.toArrayBuffer());
|
|
311
|
-
const uuid = uuidMap.get(source.address.uuid).target;
|
|
304
|
+
const uuid = uuidMap.get(source.address.uuid, "uuid mapping").target;
|
|
312
305
|
targetGraph.createBox(source.name, uuid, box => {
|
|
313
306
|
box.read(input);
|
|
314
307
|
if (IndexedBox.isIndexedBox(box)) {
|
|
@@ -321,7 +314,7 @@ export var PresetDecoder;
|
|
|
321
314
|
return;
|
|
322
315
|
}
|
|
323
316
|
const input = new ByteArrayInput(source.toArrayBuffer());
|
|
324
|
-
const uuid = uuidMap.get(source.address.uuid).target;
|
|
317
|
+
const uuid = uuidMap.get(source.address.uuid, "uuid mapping").target;
|
|
325
318
|
targetGraph.createBox(source.name, uuid, box => box.read(input));
|
|
326
319
|
});
|
|
327
320
|
});
|
|
@@ -94,7 +94,7 @@ export var PresetEncoder;
|
|
|
94
94
|
}, () => {
|
|
95
95
|
effects.forEach((source, i) => {
|
|
96
96
|
const input = new ByteArrayInput(source.toArrayBuffer());
|
|
97
|
-
const uuid = uuidMap.get(source.address.uuid).target;
|
|
97
|
+
const uuid = uuidMap.get(source.address.uuid, "uuid mapping").target;
|
|
98
98
|
boxGraph.createBox(source.name, uuid, box => {
|
|
99
99
|
box.read(input);
|
|
100
100
|
if (IndexedBox.isIndexedBox(box)) {
|
|
@@ -104,7 +104,7 @@ export var PresetEncoder;
|
|
|
104
104
|
});
|
|
105
105
|
dependencies.forEach(source => {
|
|
106
106
|
const input = new ByteArrayInput(source.toArrayBuffer());
|
|
107
|
-
const uuid = uuidMap.get(source.address.uuid).target;
|
|
107
|
+
const uuid = uuidMap.get(source.address.uuid, "uuid mapping").target;
|
|
108
108
|
boxGraph.createBox(source.name, uuid, box => box.read(input));
|
|
109
109
|
});
|
|
110
110
|
});
|
|
@@ -9,6 +9,7 @@ import { WarpMarkerBoxAdapter } from "../audio/WarpMarkerBoxAdapter";
|
|
|
9
9
|
import { AudioClipBox, AudioRegionBox } from "@opendaw/studio-boxes";
|
|
10
10
|
export interface AudioContentBoxAdapter extends BoxAdapter {
|
|
11
11
|
get file(): AudioFileBoxAdapter;
|
|
12
|
+
get optFile(): Option<AudioFileBoxAdapter>;
|
|
12
13
|
get timeBase(): TimeBase;
|
|
13
14
|
get duration(): ppqn;
|
|
14
15
|
get observableOptPlayMode(): ObservableOption<AudioPlayMode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioContentBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/AudioContentBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAC,0BAA0B,EAAC,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAC,2BAA2B,EAAC,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,uBAAuB,CAAA;AAElE,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACtD,IAAI,IAAI,IAAI,mBAAmB,CAAA;IAC/B,IAAI,QAAQ,IAAI,QAAQ,CAAA;IACxB,IAAI,QAAQ,IAAI,IAAI,CAAA;IACpB,IAAI,qBAAqB,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAC5D,IAAI,cAAc,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,mBAAmB,IAAI,OAAO,CAAA;IAClC,IAAI,sBAAsB,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAA;IACjE,IAAI,qBAAqB,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAA;IAC/D,IAAI,cAAc,IAAI,MAAM,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACnE,IAAI,SAAS,IAAI,OAAO,CAAA;IACxB,IAAI,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC1C,IAAI,GAAG,IAAI,YAAY,GAAG,cAAc,CAAA;CAC3C"}
|
|
1
|
+
{"version":3,"file":"AudioContentBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/AudioContentBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAC,0BAA0B,EAAC,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAC,2BAA2B,EAAC,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,uBAAuB,CAAA;AAElE,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACtD,IAAI,IAAI,IAAI,mBAAmB,CAAA;IAC/B,IAAI,OAAO,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAC1C,IAAI,QAAQ,IAAI,QAAQ,CAAA;IACxB,IAAI,QAAQ,IAAI,IAAI,CAAA;IACpB,IAAI,qBAAqB,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAC5D,IAAI,cAAc,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,mBAAmB,IAAI,OAAO,CAAA;IAClC,IAAI,sBAAsB,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAA;IACjE,IAAI,qBAAqB,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAA;IAC/D,IAAI,cAAc,IAAI,MAAM,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACnE,IAAI,SAAS,IAAI,OAAO,CAAA;IACxB,IAAI,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC1C,IAAI,GAAG,IAAI,YAAY,GAAG,cAAc,CAAA;CAC3C"}
|
|
@@ -199,7 +199,7 @@ export class SignatureTrackAdapter {
|
|
|
199
199
|
.map((bar, i) => ({ bar, i }))
|
|
200
200
|
.sort((a, b) => a.bar - b.bar)
|
|
201
201
|
.map(x => x.i);
|
|
202
|
-
const adapters = allEvents.map(e => this.adapterAt(e.index).unwrap());
|
|
202
|
+
const adapters = allEvents.map(e => this.adapterAt(e.index).unwrap("adapterAt"));
|
|
203
203
|
for (let newIdx = 0; newIdx < sortedIndices.length; newIdx++) {
|
|
204
204
|
adapters[sortedIndices[newIdx]].box.index.setValue(newIdx);
|
|
205
205
|
}
|
|
@@ -213,7 +213,7 @@ _TrackBoxAdapter_context = new WeakMap(), _TrackBoxAdapter_box = new WeakMap(),
|
|
|
213
213
|
return Terminable.Empty;
|
|
214
214
|
}
|
|
215
215
|
case TrackType.Value: {
|
|
216
|
-
const target = __classPrivateFieldGet(this, _TrackBoxAdapter_box, "f").target.targetVertex.unwrap();
|
|
216
|
+
const target = __classPrivateFieldGet(this, _TrackBoxAdapter_box, "f").target.targetVertex.unwrap("target.target");
|
|
217
217
|
if (target.isField()) {
|
|
218
218
|
observer(__classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").parameterFieldAdapters.opt(target.address).map(vertex => vertex.name));
|
|
219
219
|
}
|
|
@@ -33,6 +33,7 @@ export declare class AudioClipBoxAdapter implements AudioContentBoxAdapter, Clip
|
|
|
33
33
|
get hue(): int;
|
|
34
34
|
get gain(): MutableObservableValue<number>;
|
|
35
35
|
get file(): AudioFileBoxAdapter;
|
|
36
|
+
get optFile(): Option<AudioFileBoxAdapter>;
|
|
36
37
|
get observableOptPlayMode(): ObservableOption<AudioPlayMode>;
|
|
37
38
|
get hasCollection(): boolean;
|
|
38
39
|
get optCollection(): Option<never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioClipBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/clip/AudioClipBoxAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AudioClipBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/clip/AudioClipBoxAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,9 +78,9 @@ export class AudioClipBoxAdapter {
|
|
|
78
78
|
box.hue.setValue(this.hue);
|
|
79
79
|
box.duration.setValue(this.duration);
|
|
80
80
|
box.mute.setValue(this.mute);
|
|
81
|
-
box.clips.refer(__classPrivateFieldGet(this, _AudioClipBoxAdapter_box, "f").clips.targetVertex.unwrap());
|
|
82
|
-
box.file.refer(__classPrivateFieldGet(this, _AudioClipBoxAdapter_box, "f").file.targetVertex.unwrap());
|
|
83
|
-
box.events.refer(__classPrivateFieldGet(this, _AudioClipBoxAdapter_box, "f").events.targetVertex.unwrap());
|
|
81
|
+
box.clips.refer(__classPrivateFieldGet(this, _AudioClipBoxAdapter_box, "f").clips.targetVertex.unwrap("clips.target"));
|
|
82
|
+
box.file.refer(__classPrivateFieldGet(this, _AudioClipBoxAdapter_box, "f").file.targetVertex.unwrap("file.target"));
|
|
83
|
+
box.events.refer(__classPrivateFieldGet(this, _AudioClipBoxAdapter_box, "f").events.targetVertex.unwrap("events.target"));
|
|
84
84
|
clonedPlayMode.ifSome(mode => box.playMode.refer(mode));
|
|
85
85
|
});
|
|
86
86
|
}
|
|
@@ -97,6 +97,7 @@ export class AudioClipBoxAdapter {
|
|
|
97
97
|
get hue() { return __classPrivateFieldGet(this, _AudioClipBoxAdapter_box, "f").hue.getValue(); }
|
|
98
98
|
get gain() { return __classPrivateFieldGet(this, _AudioClipBoxAdapter_box, "f").gain; }
|
|
99
99
|
get file() { return __classPrivateFieldGet(this, _AudioClipBoxAdapter_fileAdapter, "f").unwrap("Cannot access file."); }
|
|
100
|
+
get optFile() { return __classPrivateFieldGet(this, _AudioClipBoxAdapter_fileAdapter, "f"); }
|
|
100
101
|
get observableOptPlayMode() { return __classPrivateFieldGet(this, _AudioClipBoxAdapter_playMode, "f"); }
|
|
101
102
|
get hasCollection() { return !this.optCollection.isEmpty(); }
|
|
102
103
|
get optCollection() { return Option.None; }
|
|
@@ -54,18 +54,18 @@ export class NoteClipBoxAdapter {
|
|
|
54
54
|
accept(visitor) { return safeExecute(visitor.visitNoteClipBoxAdapter, this); }
|
|
55
55
|
consolidate() {
|
|
56
56
|
if (this.isMirrowed) {
|
|
57
|
-
__classPrivateFieldGet(this, _NoteClipBoxAdapter_box, "f").events.refer(this.optCollection.unwrap().copy().box.owners);
|
|
57
|
+
__classPrivateFieldGet(this, _NoteClipBoxAdapter_box, "f").events.refer(this.optCollection.unwrap("optCollection").copy().box.owners);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
clone(consolidate) {
|
|
61
|
-
const events = consolidate ? this.optCollection.unwrap().copy().box.owners : __classPrivateFieldGet(this, _NoteClipBoxAdapter_box, "f").events.targetVertex.unwrap();
|
|
61
|
+
const events = consolidate ? this.optCollection.unwrap("optCollection").copy().box.owners : __classPrivateFieldGet(this, _NoteClipBoxAdapter_box, "f").events.targetVertex.unwrap("events.target");
|
|
62
62
|
NoteClipBox.create(__classPrivateFieldGet(this, _NoteClipBoxAdapter_context, "f").boxGraph, UUID.generate(), box => {
|
|
63
63
|
box.index.setValue(this.indexField.getValue());
|
|
64
64
|
box.label.setValue(this.label);
|
|
65
65
|
box.hue.setValue(this.hue);
|
|
66
66
|
box.duration.setValue(this.duration);
|
|
67
67
|
box.mute.setValue(this.mute);
|
|
68
|
-
box.clips.refer(__classPrivateFieldGet(this, _NoteClipBoxAdapter_box, "f").clips.targetVertex.unwrap());
|
|
68
|
+
box.clips.refer(__classPrivateFieldGet(this, _NoteClipBoxAdapter_box, "f").clips.targetVertex.unwrap("clips.target"));
|
|
69
69
|
box.events.refer(events);
|
|
70
70
|
});
|
|
71
71
|
}
|
|
@@ -60,18 +60,18 @@ export class ValueClipBoxAdapter {
|
|
|
60
60
|
accept(visitor) { return safeExecute(visitor.visitValueClipBoxAdapter, this); }
|
|
61
61
|
consolidate() {
|
|
62
62
|
if (this.isMirrowed) {
|
|
63
|
-
__classPrivateFieldGet(this, _ValueClipBoxAdapter_box, "f").events.refer(this.optCollection.unwrap().copy().box.owners);
|
|
63
|
+
__classPrivateFieldGet(this, _ValueClipBoxAdapter_box, "f").events.refer(this.optCollection.unwrap("optCollection").copy().box.owners);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
clone(consolidate) {
|
|
67
|
-
const events = consolidate ? this.optCollection.unwrap().copy().box.owners : __classPrivateFieldGet(this, _ValueClipBoxAdapter_box, "f").events.targetVertex.unwrap();
|
|
67
|
+
const events = consolidate ? this.optCollection.unwrap("optCollection").copy().box.owners : __classPrivateFieldGet(this, _ValueClipBoxAdapter_box, "f").events.targetVertex.unwrap("events.target");
|
|
68
68
|
ValueClipBox.create(__classPrivateFieldGet(this, _ValueClipBoxAdapter_context, "f").boxGraph, UUID.generate(), box => {
|
|
69
69
|
box.index.setValue(this.indexField.getValue());
|
|
70
70
|
box.label.setValue(this.label);
|
|
71
71
|
box.hue.setValue(this.hue);
|
|
72
72
|
box.duration.setValue(this.duration);
|
|
73
73
|
box.mute.setValue(this.mute);
|
|
74
|
-
box.clips.refer(__classPrivateFieldGet(this, _ValueClipBoxAdapter_box, "f").clips.targetVertex.unwrap());
|
|
74
|
+
box.clips.refer(__classPrivateFieldGet(this, _ValueClipBoxAdapter_box, "f").clips.targetVertex.unwrap("clips.target"));
|
|
75
75
|
box.events.refer(events);
|
|
76
76
|
});
|
|
77
77
|
}
|
|
@@ -91,7 +91,7 @@ export class NoteEventBoxAdapter {
|
|
|
91
91
|
box.duration.setValue(options?.duration ?? this.duration);
|
|
92
92
|
box.pitch.setValue(options?.pitch ?? this.pitch);
|
|
93
93
|
box.playCount.setValue(options?.playCount ?? this.playCount);
|
|
94
|
-
box.events.refer(options?.events ?? this.collection.unwrap().box.events);
|
|
94
|
+
box.events.refer(options?.events ?? this.collection.unwrap("collection").box.events);
|
|
95
95
|
box.velocity.setValue(this.velocity);
|
|
96
96
|
box.cent.setValue(this.cent);
|
|
97
97
|
box.chance.setValue(this.chance);
|
|
@@ -101,7 +101,7 @@ export class NoteEventBoxAdapter {
|
|
|
101
101
|
canConsolidate() { return this.playCount > 1; }
|
|
102
102
|
consolidate() {
|
|
103
103
|
const playCount = this.playCount;
|
|
104
|
-
const events = this.collection.unwrap().box.events;
|
|
104
|
+
const events = this.collection.unwrap("collection").box.events;
|
|
105
105
|
const adapters = Arrays.create((index) => {
|
|
106
106
|
const a = Math.floor(this.computeCurveValue(index / playCount) * this.duration);
|
|
107
107
|
const b = Math.floor(this.computeCurveValue((index + 1) / playCount) * this.duration);
|
|
@@ -97,7 +97,7 @@ export class ValueEventBoxAdapter {
|
|
|
97
97
|
const eventBox = ValueEventBox.create(__classPrivateFieldGet(this, _ValueEventBoxAdapter_context, "f").boxGraph, UUID.generate(), box => {
|
|
98
98
|
box.position.setValue(position);
|
|
99
99
|
box.index.setValue(index);
|
|
100
|
-
box.events.refer(options?.events ?? this.collection.unwrap().box.events);
|
|
100
|
+
box.events.refer(options?.events ?? this.collection.unwrap("collection").box.events);
|
|
101
101
|
box.value.setValue(options?.value ?? this.value);
|
|
102
102
|
});
|
|
103
103
|
InterpolationFieldAdapter.write(eventBox.interpolation, options?.interpolation ?? this.interpolation);
|
|
@@ -106,7 +106,7 @@ export class ValueEventBoxAdapter {
|
|
|
106
106
|
copyFrom(options) {
|
|
107
107
|
__classPrivateFieldGet(this, _ValueEventBoxAdapter_box, "f").position.setValue(options?.position ?? this.position);
|
|
108
108
|
__classPrivateFieldGet(this, _ValueEventBoxAdapter_box, "f").index.setValue(options?.index ?? this.index);
|
|
109
|
-
__classPrivateFieldGet(this, _ValueEventBoxAdapter_box, "f").events.refer(options?.events ?? this.collection.unwrap().box.events);
|
|
109
|
+
__classPrivateFieldGet(this, _ValueEventBoxAdapter_box, "f").events.refer(options?.events ?? this.collection.unwrap("collection").box.events);
|
|
110
110
|
__classPrivateFieldGet(this, _ValueEventBoxAdapter_box, "f").value.setValue(options?.value ?? this.value);
|
|
111
111
|
InterpolationFieldAdapter.write(__classPrivateFieldGet(this, _ValueEventBoxAdapter_box, "f").interpolation, options?.interpolation ?? this.interpolation);
|
|
112
112
|
return this;
|
|
@@ -221,8 +221,8 @@ export class AudioRegionBoxAdapter {
|
|
|
221
221
|
const adapter = __classPrivateFieldGet(this, _AudioRegionBoxAdapter_context, "f").boxAdapters.adapterFor(AudioRegionBox.create(__classPrivateFieldGet(this, _AudioRegionBoxAdapter_context, "f").boxGraph, UUID.generate(), box => {
|
|
222
222
|
box.timeBase.setValue(__classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").timeBase.getValue());
|
|
223
223
|
box.position.setValue(params?.position ?? __classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").position.getValue());
|
|
224
|
-
box.regions.refer(params?.target ?? __classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").regions.targetVertex.unwrap());
|
|
225
|
-
box.file.refer(__classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").file.targetVertex.unwrap());
|
|
224
|
+
box.regions.refer(params?.target ?? __classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").regions.targetVertex.unwrap("regions.target"));
|
|
225
|
+
box.file.refer(__classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").file.targetVertex.unwrap("file.target"));
|
|
226
226
|
box.events.refer(eventTarget);
|
|
227
227
|
box.mute.setValue(this.mute);
|
|
228
228
|
box.hue.setValue(this.hue);
|
|
@@ -240,7 +240,7 @@ export class AudioRegionBoxAdapter {
|
|
|
240
240
|
consolidate() { }
|
|
241
241
|
canFlatten(regions) {
|
|
242
242
|
return regions.length > 0
|
|
243
|
-
&& Arrays.satisfy(regions, (a, b) => a.trackBoxAdapter.contains(b.trackBoxAdapter.unwrap()))
|
|
243
|
+
&& Arrays.satisfy(regions, (a, b) => a.trackBoxAdapter.contains(b.trackBoxAdapter.unwrap("trackBoxAdapter")))
|
|
244
244
|
&& regions.every(region => region.isSelected && region instanceof AudioRegionBoxAdapter);
|
|
245
245
|
}
|
|
246
246
|
flatten(_regions) {
|
|
@@ -150,7 +150,7 @@ export class NoteRegionBoxAdapter {
|
|
|
150
150
|
box.label.setValue(this.label);
|
|
151
151
|
box.mute.setValue(this.mute);
|
|
152
152
|
box.events.refer(eventTarget);
|
|
153
|
-
box.regions.refer(params?.target ?? __classPrivateFieldGet(this, _NoteRegionBoxAdapter_box, "f").regions.targetVertex.unwrap());
|
|
153
|
+
box.regions.refer(params?.target ?? __classPrivateFieldGet(this, _NoteRegionBoxAdapter_box, "f").regions.targetVertex.unwrap("regions.target"));
|
|
154
154
|
}), NoteRegionBoxAdapter);
|
|
155
155
|
}
|
|
156
156
|
consolidate() {
|
|
@@ -165,7 +165,7 @@ export class NoteRegionBoxAdapter {
|
|
|
165
165
|
});
|
|
166
166
|
}
|
|
167
167
|
canFlatten(regions) {
|
|
168
|
-
return regions.length > 0 && Arrays.satisfy(regions, (a, b) => a.trackBoxAdapter.contains(b.trackBoxAdapter.unwrap()))
|
|
168
|
+
return regions.length > 0 && Arrays.satisfy(regions, (a, b) => a.trackBoxAdapter.contains(b.trackBoxAdapter.unwrap("trackBoxAdapter")))
|
|
169
169
|
&& regions.every(region => region.isSelected && region instanceof NoteRegionBoxAdapter);
|
|
170
170
|
}
|
|
171
171
|
flatten(regions) {
|
|
@@ -178,7 +178,7 @@ export class NoteRegionBoxAdapter {
|
|
|
178
178
|
const last = Arrays.getLast(sorted, "Internal error (no last)");
|
|
179
179
|
const rangeMin = first.position;
|
|
180
180
|
const rangeMax = last.position + last.duration;
|
|
181
|
-
const trackBoxAdapter = first.trackBoxAdapter.unwrap();
|
|
181
|
+
const trackBoxAdapter = first.trackBoxAdapter.unwrap("trackBoxAdapter");
|
|
182
182
|
const collectionBox = NoteEventCollectionBox.create(graph, UUID.generate());
|
|
183
183
|
const overlapping = Array.from(trackBoxAdapter.regions.collection.iterateRange(rangeMin, rangeMax));
|
|
184
184
|
overlapping
|
|
@@ -188,7 +188,7 @@ export class NoteRegionBoxAdapter {
|
|
|
188
188
|
for (const { resultStart, resultEnd, rawStart } of LoopableRegion.locateLoops(region, region.position, region.complete)) {
|
|
189
189
|
const searchStart = Math.floor(resultStart - rawStart);
|
|
190
190
|
const searchEnd = Math.floor(resultEnd - rawStart);
|
|
191
|
-
for (const event of region.optCollection.unwrap().events.iterateRange(searchStart, searchEnd)) {
|
|
191
|
+
for (const event of region.optCollection.unwrap("optCollection").events.iterateRange(searchStart, searchEnd)) {
|
|
192
192
|
event.copyTo({
|
|
193
193
|
position: event.position + rawStart - first.position,
|
|
194
194
|
events: collectionBox.events
|
|
@@ -170,7 +170,7 @@ export class ValueRegionBoxAdapter {
|
|
|
170
170
|
box.label.setValue(this.label);
|
|
171
171
|
box.mute.setValue(this.mute);
|
|
172
172
|
box.events.refer(eventTarget);
|
|
173
|
-
box.regions.refer(params?.target ?? __classPrivateFieldGet(this, _ValueRegionBoxAdapter_box, "f").regions.targetVertex.unwrap());
|
|
173
|
+
box.regions.refer(params?.target ?? __classPrivateFieldGet(this, _ValueRegionBoxAdapter_box, "f").regions.targetVertex.unwrap("regions.target"));
|
|
174
174
|
}), ValueRegionBoxAdapter);
|
|
175
175
|
}
|
|
176
176
|
consolidate() {
|
|
@@ -186,7 +186,7 @@ export class ValueRegionBoxAdapter {
|
|
|
186
186
|
}
|
|
187
187
|
canFlatten(regions) {
|
|
188
188
|
return regions.length > 0
|
|
189
|
-
&& Arrays.satisfy(regions, (a, b) => a.trackBoxAdapter.contains(b.trackBoxAdapter.unwrap()))
|
|
189
|
+
&& Arrays.satisfy(regions, (a, b) => a.trackBoxAdapter.contains(b.trackBoxAdapter.unwrap("trackBoxAdapter")))
|
|
190
190
|
&& regions.every(region => region.isSelected && region instanceof ValueRegionBoxAdapter);
|
|
191
191
|
}
|
|
192
192
|
flatten(regions) {
|
|
@@ -199,14 +199,14 @@ export class ValueRegionBoxAdapter {
|
|
|
199
199
|
const last = Arrays.getLast(sorted, "Internal error (no last)");
|
|
200
200
|
const rangeMin = first.position;
|
|
201
201
|
const rangeMax = last.position + last.duration;
|
|
202
|
-
const trackBoxAdapter = first.trackBoxAdapter.unwrap();
|
|
202
|
+
const trackBoxAdapter = first.trackBoxAdapter.unwrap("trackBoxAdapter");
|
|
203
203
|
const overlapping = Array.from(trackBoxAdapter.regions.collection.iterateRange(rangeMin, rangeMax));
|
|
204
204
|
const entries = [];
|
|
205
205
|
overlapping
|
|
206
206
|
.filter(region => region.isSelected)
|
|
207
207
|
.forEach(anyRegion => {
|
|
208
208
|
const region = anyRegion;
|
|
209
|
-
const collection = region.optCollection.unwrap();
|
|
209
|
+
const collection = region.optCollection.unwrap("optCollection");
|
|
210
210
|
const events = collection.events;
|
|
211
211
|
for (const { rawStart, regionStart, regionEnd } of LoopableRegion.locateLoops(region, region.position, region.complete)) {
|
|
212
212
|
const searchMin = regionStart - rawStart;
|
|
@@ -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,EAAU,MAAM,uBAAuB,CAAA;
|
|
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;AAE3D,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,CA4BlF,CAAA;CACJ"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { asInstanceOf } from "@opendaw/lib-std";
|
|
2
2
|
import { IndexedBox } from "@opendaw/lib-box";
|
|
3
3
|
import { AudioUnitBox, RootBox } from "@opendaw/studio-boxes";
|
|
4
|
+
import { AudioUnitType } from "@opendaw/studio-enums";
|
|
4
5
|
import { TransferUtils } from "./TransferUtils";
|
|
5
6
|
export var TransferAudioUnits;
|
|
6
7
|
(function (TransferAudioUnits) {
|
|
@@ -10,22 +11,28 @@ export var TransferAudioUnits;
|
|
|
10
11
|
* @returns the newly created audio unit boxes in the target graph
|
|
11
12
|
*/
|
|
12
13
|
TransferAudioUnits.transfer = (audioUnitBoxes, { boxGraph: targetBoxGraph, mandatoryBoxes: { primaryAudioBusBox, rootBox } }, options = {}) => {
|
|
14
|
+
// The Output unit is a project singleton whose `output` routes to rootBox.outputDevice; copying it
|
|
15
|
+
// pulls the RootBox into the dependency closure and grafts a second RootBox. Never duplicate it.
|
|
16
|
+
const sources = audioUnitBoxes.filter(box => box.type.getValue() !== AudioUnitType.Output);
|
|
17
|
+
if (sources.length === 0) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
13
20
|
const excludeBox = (box) => TransferUtils.shouldExclude(box)
|
|
14
21
|
|| (options?.excludeTimeline === true && TransferUtils.excludeTimelinePredicate(box));
|
|
15
|
-
const dependencies = Array.from(
|
|
22
|
+
const dependencies = Array.from(sources[0].graph.dependenciesOf(sources, {
|
|
16
23
|
alwaysFollowMandatory: true,
|
|
17
24
|
stopAtResources: true,
|
|
18
25
|
excludeBox
|
|
19
26
|
}).boxes);
|
|
20
|
-
const uuidMap = TransferUtils.generateMap(
|
|
21
|
-
TransferUtils.copyBoxes(uuidMap, targetBoxGraph,
|
|
22
|
-
TransferUtils.reorderAudioUnits(uuidMap,
|
|
23
|
-
const result =
|
|
24
|
-
.findBox(uuidMap.get(source.address.uuid).target)
|
|
27
|
+
const uuidMap = TransferUtils.generateMap(sources, dependencies, rootBox.audioUnits.address.uuid, primaryAudioBusBox.address.uuid);
|
|
28
|
+
TransferUtils.copyBoxes(uuidMap, targetBoxGraph, sources, dependencies);
|
|
29
|
+
TransferUtils.reorderAudioUnits(uuidMap, sources, rootBox, options.insertIndex);
|
|
30
|
+
const result = sources.map(source => asInstanceOf(rootBox.graph
|
|
31
|
+
.findBox(uuidMap.get(source.address.uuid, "uuid mapping").target)
|
|
25
32
|
.unwrap("Target AudioUnit has not been copied"), AudioUnitBox));
|
|
26
33
|
if (options.deleteSource === true) {
|
|
27
|
-
const sourceRootBox = asInstanceOf(
|
|
28
|
-
|
|
34
|
+
const sourceRootBox = asInstanceOf(sources[0].collection.targetVertex.unwrap("collection.target").box, RootBox);
|
|
35
|
+
sources.forEach(box => box.delete());
|
|
29
36
|
IndexedBox.collectIndexedBoxes(sourceRootBox.audioUnits, AudioUnitBox)
|
|
30
37
|
.forEach((box, index) => box.index.setValue(index));
|
|
31
38
|
}
|
|
@@ -63,7 +63,7 @@ export var TransferRegions;
|
|
|
63
63
|
}
|
|
64
64
|
}, () => sourceBoxes.forEach(sourceBox => {
|
|
65
65
|
const input = new ByteArrayInput(sourceBox.toArrayBuffer());
|
|
66
|
-
const targetUuid = uuidMap.get(sourceBox.address.uuid).target;
|
|
66
|
+
const targetUuid = uuidMap.get(sourceBox.address.uuid, "uuid mapping").target;
|
|
67
67
|
targetGraph.createBox(sourceBox.name, targetUuid, box => {
|
|
68
68
|
box.read(input);
|
|
69
69
|
if (UnionBoxTypes.isRegionBox(box)) {
|
|
@@ -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,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;AAGrD,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,
|
|
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;AAGrD,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,IA2BrD,CAAA;IAEM,MAAM,cAAc,GAAI,aAAa,aAAa,CAAC,YAAY,CAAC,EACxC,+DAA2D,eAAe,EAC1E,iBAAgB,IAAU,KAAG,IA8C3D,CAAA;CACJ"}
|
|
@@ -61,7 +61,7 @@ export var TransferUtils;
|
|
|
61
61
|
}, () => {
|
|
62
62
|
audioUnitBoxes.forEach((source) => {
|
|
63
63
|
const input = new ByteArrayInput(source.toArrayBuffer());
|
|
64
|
-
const uuid = uuidMap.get(source.address.uuid).target;
|
|
64
|
+
const uuid = uuidMap.get(source.address.uuid, "uuid mapping").target;
|
|
65
65
|
targetBoxGraph.createBox(source.name, uuid, box => box.read(input));
|
|
66
66
|
});
|
|
67
67
|
dependencies.forEach((source) => {
|
|
@@ -72,7 +72,7 @@ export var TransferUtils;
|
|
|
72
72
|
return;
|
|
73
73
|
}
|
|
74
74
|
const input = new ByteArrayInput(source.toArrayBuffer());
|
|
75
|
-
const uuid = uuidMap.get(source.address.uuid).target;
|
|
75
|
+
const uuid = uuidMap.get(source.address.uuid, "uuid mapping").target;
|
|
76
76
|
targetBoxGraph.createBox(source.name, uuid, box => box.read(input));
|
|
77
77
|
});
|
|
78
78
|
});
|
|
@@ -81,23 +81,29 @@ export var TransferUtils;
|
|
|
81
81
|
const targets = audioUnitBoxes
|
|
82
82
|
.toSorted(compareIndex)
|
|
83
83
|
.map(source => asInstanceOf(rootBox.graph
|
|
84
|
-
.findBox(uuidMap.get(source.address.uuid).target)
|
|
84
|
+
.findBox(uuidMap.get(source.address.uuid, "uuid mapping").target)
|
|
85
85
|
.unwrap("Target AudioUnit has not been copied"), AudioUnitBox));
|
|
86
86
|
const targetSet = new Set(targets);
|
|
87
87
|
const allAudioUnits = IndexedBox.collectIndexedBoxes(rootBox.audioUnits, AudioUnitBox);
|
|
88
88
|
const existing = allAudioUnits.filter(box => !targetSet.has(box));
|
|
89
|
-
let
|
|
89
|
+
let ordered;
|
|
90
90
|
if (isDefined(insertIndex)) {
|
|
91
|
-
position = clamp(insertIndex, 0, existing.length);
|
|
91
|
+
const position = clamp(insertIndex, 0, existing.length);
|
|
92
|
+
ordered = [...existing.slice(0, position), ...targets, ...existing.slice(position)];
|
|
92
93
|
}
|
|
93
94
|
else {
|
|
95
|
+
// Place by AudioUnitOrdering, not by current index: the primary Output unit (highest order)
|
|
96
|
+
// can sit at a low index, so findIndex over the index-sorted list would insert the copy
|
|
97
|
+
// before it. Sort existing by order first so the copy lands among its own kind (e.g. an
|
|
98
|
+
// instrument after the other instruments but before the Output unit).
|
|
99
|
+
const byOrder = existing.toSorted((a, b) => (AudioUnitOrdering[a.type.getValue()] ?? 0) - (AudioUnitOrdering[b.type.getValue()] ?? 0));
|
|
94
100
|
const maxOrder = targets.reduce((max, box) => Math.max(max, AudioUnitOrdering[box.type.getValue()] ?? 0), 0);
|
|
95
|
-
position =
|
|
101
|
+
let position = byOrder.findIndex(box => (AudioUnitOrdering[box.type.getValue()] ?? 0) > maxOrder);
|
|
96
102
|
if (position === -1) {
|
|
97
|
-
position =
|
|
103
|
+
position = byOrder.length;
|
|
98
104
|
}
|
|
105
|
+
ordered = [...byOrder.slice(0, position), ...targets, ...byOrder.slice(position)];
|
|
99
106
|
}
|
|
100
|
-
const ordered = [...existing.slice(0, position), ...targets, ...existing.slice(position)];
|
|
101
107
|
ordered.forEach((box, index) => box.index.setValue(index));
|
|
102
108
|
};
|
|
103
109
|
TransferUtils.extractRegions = (regionBoxes, { boxGraph, mandatoryBoxes: { primaryAudioBusBox, rootBox } }, insertPosition = 0.0) => {
|
|
@@ -106,9 +112,9 @@ export var TransferUtils;
|
|
|
106
112
|
const trackBoxSet = new Set();
|
|
107
113
|
const audioUnitBoxSet = new SetMultimap();
|
|
108
114
|
regionBoxes.forEach(regionBox => {
|
|
109
|
-
const trackBox = asInstanceOf(regionBox.regions.targetVertex.unwrap().box, TrackBox);
|
|
115
|
+
const trackBox = asInstanceOf(regionBox.regions.targetVertex.unwrap("regions.target").box, TrackBox);
|
|
110
116
|
trackBoxSet.add(trackBox);
|
|
111
|
-
const audioUnitBox = asInstanceOf(trackBox.tracks.targetVertex.unwrap().box, AudioUnitBox);
|
|
117
|
+
const audioUnitBox = asInstanceOf(trackBox.tracks.targetVertex.unwrap("tracks.target").box, AudioUnitBox);
|
|
112
118
|
audioUnitBoxSet.add(audioUnitBox, trackBox);
|
|
113
119
|
});
|
|
114
120
|
console.debug(`Found ${audioUnitBoxSet.keyCount()} audioUnits`);
|
|
@@ -129,7 +135,7 @@ export var TransferUtils;
|
|
|
129
135
|
.sort(compareIndex)
|
|
130
136
|
.forEach((source, index) => {
|
|
131
137
|
const box = boxGraph
|
|
132
|
-
.findBox(uuidMap.get(source.address.uuid).target)
|
|
138
|
+
.findBox(uuidMap.get(source.address.uuid, "uuid mapping").target)
|
|
133
139
|
.unwrap("Target Track has not been copied");
|
|
134
140
|
asInstanceOf(box, TrackBox).index.setValue(index);
|
|
135
141
|
}));
|
|
@@ -137,7 +143,7 @@ export var TransferUtils;
|
|
|
137
143
|
const delta = insertPosition - minPosition;
|
|
138
144
|
regionBoxes.forEach((source) => {
|
|
139
145
|
const box = boxGraph
|
|
140
|
-
.findBox(uuidMap.get(source.address.uuid).target)
|
|
146
|
+
.findBox(uuidMap.get(source.address.uuid, "uuid mapping").target)
|
|
141
147
|
.unwrap("Target Track has not been copied");
|
|
142
148
|
const { position } = UnionBoxTypes.asRegionBox(box);
|
|
143
149
|
position.setValue(position.getValue() + delta);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendaw/studio-adapters",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.118",
|
|
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.87",
|
|
27
|
+
"@opendaw/lib-dsp": "^0.0.85",
|
|
28
|
+
"@opendaw/lib-fusion": "^0.0.95",
|
|
29
|
+
"@opendaw/lib-runtime": "^0.0.80",
|
|
30
|
+
"@opendaw/lib-std": "^0.0.79",
|
|
31
|
+
"@opendaw/studio-boxes": "^0.0.95",
|
|
32
|
+
"@opendaw/studio-enums": "^0.0.78",
|
|
33
33
|
"soundfont2": "^0.5.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@opendaw/eslint-config": "^0.0.28",
|
|
37
37
|
"@opendaw/typescript-config": "^0.0.32"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "c9276338f3101de6e42cd0f52c91c2d9c53c8125"
|
|
40
40
|
}
|