@opendaw/studio-adapters 0.0.80 → 0.0.82
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/AutomatableParameterFieldAdapter.d.ts.map +1 -1
- package/dist/AutomatableParameterFieldAdapter.js +4 -1
- package/dist/BoxAdapters.d.ts.map +1 -1
- package/dist/BoxAdapters.js +2 -0
- package/dist/EngineProcessorAttachment.d.ts +1 -0
- package/dist/EngineProcessorAttachment.d.ts.map +1 -1
- package/dist/ParameterFieldAdapters.d.ts +3 -1
- package/dist/ParameterFieldAdapters.d.ts.map +1 -1
- package/dist/ParameterFieldAdapters.js +11 -2
- package/dist/VaryingTempoMap.d.ts +3 -2
- package/dist/VaryingTempoMap.d.ts.map +1 -1
- package/dist/VaryingTempoMap.js +99 -28
- package/dist/devices/audio-effects/NeuralAmpDeviceBoxAdapter.d.ts +5 -2
- package/dist/devices/audio-effects/NeuralAmpDeviceBoxAdapter.d.ts.map +1 -1
- package/dist/devices/audio-effects/NeuralAmpDeviceBoxAdapter.js +16 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/nam/NeuralAmpModelBoxAdapter.d.ts +17 -0
- package/dist/nam/NeuralAmpModelBoxAdapter.d.ts.map +1 -0
- package/dist/nam/NeuralAmpModelBoxAdapter.js +30 -0
- package/dist/project/ProjectUtils.js +2 -2
- package/dist/protocols.d.ts +5 -0
- package/dist/protocols.d.ts.map +1 -1
- package/dist/timeline/collection/ValueEventCollectionBoxAdapter.js +2 -2
- package/dist/timeline/region/AudioRegionBoxAdapter.d.ts +1 -1
- package/dist/timeline/region/AudioRegionBoxAdapter.d.ts.map +1 -1
- package/dist/timeline/region/AudioRegionBoxAdapter.js +6 -4
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutomatableParameterFieldAdapter.d.ts","sourceRoot":"","sources":["../src/AutomatableParameterFieldAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,qBAAqB,EAIrB,QAAQ,EACR,MAAM,EAEN,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EAEV,SAAS,EACT,YAAY,EACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,OAAO,EAA8B,cAAc,EAAE,aAAa,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAA;AACpH,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AAQvD,qBAAa,gCAAgC,CAAC,CAAC,SAAS,eAAe,GAAG,GAAG,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU;;gBAiBlG,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,EAC7B,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,EAC7B,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS;IA0D9B,mBAAmB,IAAI,UAAU;IAWjC,IAAI,KAAK,IAAI,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAqB;IACxE,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,CAA4B;IAC/D,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,CAA6B;IAClE,IAAI,IAAI,IAAI,MAAM,CAAoB;IACtC,IAAI,MAAM,IAAI,SAAS,CAAsB;IAC7C,IAAI,IAAI,IAAI,aAAa,CAA0B;IACnD,IAAI,OAAO,IAAI,OAAO,CAA6B;IACnD,IAAI,KAAK,IAAI,MAAM,CAAC,eAAe,CAAC,CAA+B;IAEnE,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC;IAW1B,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY;IAIhF,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY;IAK1F,iCAAiC,CAAC,QAAQ,EAAE,qBAAqB,GAAG,YAAY;IAMhF,QAAQ,IAAI,CAAC;IACb,QAAQ,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"AutomatableParameterFieldAdapter.d.ts","sourceRoot":"","sources":["../src/AutomatableParameterFieldAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,qBAAqB,EAIrB,QAAQ,EACR,MAAM,EAEN,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EAEV,SAAS,EACT,YAAY,EACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,OAAO,EAA8B,cAAc,EAAE,aAAa,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAA;AACpH,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AAQvD,qBAAa,gCAAgC,CAAC,CAAC,SAAS,eAAe,GAAG,GAAG,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU;;gBAiBlG,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,EAC7B,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,EAC7B,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS;IA0D9B,mBAAmB,IAAI,UAAU;IAWjC,IAAI,KAAK,IAAI,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAqB;IACxE,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,CAA4B;IAC/D,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,CAA6B;IAClE,IAAI,IAAI,IAAI,MAAM,CAAoB;IACtC,IAAI,MAAM,IAAI,SAAS,CAAsB;IAC7C,IAAI,IAAI,IAAI,aAAa,CAA0B;IACnD,IAAI,OAAO,IAAI,OAAO,CAA6B;IACnD,IAAI,KAAK,IAAI,MAAM,CAAC,eAAe,CAAC,CAA+B;IAEnE,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC;IAW1B,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY;IAIhF,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY;IAK1F,iCAAiC,CAAC,QAAQ,EAAE,qBAAqB,GAAG,YAAY;IAMhF,QAAQ,IAAI,CAAC;IACb,QAAQ,CAAC,KAAK,EAAE,CAAC;IAIjB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IACpC,YAAY,IAAI,SAAS;IACzB,kBAAkB,IAAI,CAAC;IACvB,sBAAsB,IAAI,SAAS;IACnC,uBAAuB,IAAI,QAAQ,CAAC,YAAY,CAAC;IACjD,aAAa,IAAI,QAAQ,CAAC,YAAY,CAAC;IACvC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWjC,KAAK,IAAI,IAAI;IAEb,SAAS,IAAI,IAAI;CAKpB"}
|
|
@@ -135,7 +135,10 @@ export class AutomatableParameterFieldAdapter {
|
|
|
135
135
|
return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_controlSource, "f").subscribe(observer);
|
|
136
136
|
}
|
|
137
137
|
getValue() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_field, "f").getValue(); }
|
|
138
|
-
setValue(value) {
|
|
138
|
+
setValue(value) {
|
|
139
|
+
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_field, "f").setValue(value);
|
|
140
|
+
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").parameterFieldAdapters.notifyWrite(this);
|
|
141
|
+
}
|
|
139
142
|
setUnitValue(value) { this.setValue(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueMapping, "f").y(value)); }
|
|
140
143
|
getUnitValue() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueMapping, "f").x(this.getValue()); }
|
|
141
144
|
getControlledValue() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueMapping, "f").y(this.getControlledUnitValue()); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAEL,MAAM,EAIN,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAEL,MAAM,EAIN,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;AAsG5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAwBvC,qBAAa,WAAY,YAAW,UAAU;;gBAO9B,OAAO,EAAE,kBAAkB;IAkBvC,SAAS,IAAI,IAAI;IAMjB,UAAU,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IAkBnG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;CAkE3C"}
|
package/dist/BoxAdapters.js
CHANGED
|
@@ -65,6 +65,7 @@ import { VelocityDeviceBoxAdapter } from "./devices/midi-effects/VelocityDeviceB
|
|
|
65
65
|
import { TidalDeviceBoxAdapter } from "./devices/audio-effects/TidalDeviceBoxAdapter";
|
|
66
66
|
import { DattorroReverbDeviceBoxAdapter } from "./devices/audio-effects/DattorroReverbDeviceBoxAdapter";
|
|
67
67
|
import { NeuralAmpDeviceBoxAdapter } from "./devices/audio-effects/NeuralAmpDeviceBoxAdapter";
|
|
68
|
+
import { NeuralAmpModelBoxAdapter } from "./nam/NeuralAmpModelBoxAdapter";
|
|
68
69
|
import { AudioPitchStretchBoxAdapter } from "./audio/AudioPitchStretchBoxAdapter";
|
|
69
70
|
import { TransientMarkerBoxAdapter } from "./audio/TransientMarkerBoxAdapter";
|
|
70
71
|
import { WarpMarkerBoxAdapter } from "./audio/WarpMarkerBoxAdapter";
|
|
@@ -152,6 +153,7 @@ _BoxAdapters_context = new WeakMap(), _BoxAdapters_adapters = new WeakMap(), _Bo
|
|
|
152
153
|
visitModuleMultiplierBox: (box) => new ModuleMultiplierAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
153
154
|
visitNanoDeviceBox: (box) => new NanoDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
154
155
|
visitNeuralAmpDeviceBox: (box) => new NeuralAmpDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
156
|
+
visitNeuralAmpModelBox: (box) => new NeuralAmpModelBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
155
157
|
visitNoteClipBox: (box) => new NoteClipBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
156
158
|
visitNoteEventBox: (box) => new NoteEventBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
157
159
|
visitNoteEventCollectionBox: (box) => new NoteEventCollectionBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
@@ -11,6 +11,7 @@ export type EngineProcessorAttachment = {
|
|
|
11
11
|
export type ExportStemConfiguration = {
|
|
12
12
|
includeAudioEffects: boolean;
|
|
13
13
|
includeSends: boolean;
|
|
14
|
+
useInstrumentOutput: boolean;
|
|
14
15
|
fileName: string;
|
|
15
16
|
};
|
|
16
17
|
export type ExportStemsConfiguration = Record<string, ExportStemConfiguration>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineProcessorAttachment.d.ts","sourceRoot":"","sources":["../src/EngineProcessorAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAGjC,MAAM,MAAM,yBAAyB,GAAG;IACpC,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,aAAa,EAAE,iBAAiB,CAAA;IAChC,OAAO,EAAE,eAAe,CAAA;IACxB,mBAAmB,CAAC,EAAE,wBAAwB,CAAA;IAC9C,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IAClC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,YAAY,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAE9E,yBAAiB,wBAAwB,CAAC;IAC/B,MAAM,UAAU,GAAI,QAAQ,MAAM,CAAC,wBAAwB,CAAC,KAAG,GAIhE,CAAA;IAEC,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAA4D,CAAA;IAErG,MAAM,0BAA0B,GAAI,eAAe,wBAAwB,KAAG,IAiBpF,CAAA;CACJ"}
|
|
1
|
+
{"version":3,"file":"EngineProcessorAttachment.d.ts","sourceRoot":"","sources":["../src/EngineProcessorAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAGjC,MAAM,MAAM,yBAAyB,GAAG;IACpC,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,aAAa,EAAE,iBAAiB,CAAA;IAChC,OAAO,EAAE,eAAe,CAAA;IACxB,mBAAmB,CAAC,EAAE,wBAAwB,CAAA;IAC9C,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IAClC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,YAAY,EAAE,OAAO,CAAA;IACrB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAE9E,yBAAiB,wBAAwB,CAAC;IAC/B,MAAM,UAAU,GAAI,QAAQ,MAAM,CAAC,wBAAwB,CAAC,KAAG,GAIhE,CAAA;IAEC,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAA4D,CAAA;IAErG,MAAM,0BAA0B,GAAI,eAAe,wBAAwB,KAAG,IAiBpF,CAAA;CACJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Option, Terminable } from "@opendaw/lib-std";
|
|
1
|
+
import { Observer, Option, Subscription, Terminable } from "@opendaw/lib-std";
|
|
2
2
|
import { Address } from "@opendaw/lib-box";
|
|
3
3
|
import { AutomatableParameterFieldAdapter } from "./AutomatableParameterFieldAdapter";
|
|
4
4
|
export declare class ParameterFieldAdapters {
|
|
@@ -7,5 +7,7 @@ export declare class ParameterFieldAdapters {
|
|
|
7
7
|
register(adapter: AutomatableParameterFieldAdapter): Terminable;
|
|
8
8
|
get(address: Address): AutomatableParameterFieldAdapter;
|
|
9
9
|
opt(address: Address): Option<AutomatableParameterFieldAdapter>;
|
|
10
|
+
subscribeWrites(observer: Observer<AutomatableParameterFieldAdapter>): Subscription;
|
|
11
|
+
notifyWrite(adapter: AutomatableParameterFieldAdapter): void;
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=ParameterFieldAdapters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParameterFieldAdapters.d.ts","sourceRoot":"","sources":["../src/ParameterFieldAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ParameterFieldAdapters.d.ts","sourceRoot":"","sources":["../src/ParameterFieldAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAE,MAAM,EAAa,YAAY,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAChG,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAC,gCAAgC,EAAC,MAAM,oCAAoC,CAAA;AAEnF,qBAAa,sBAAsB;;;IAS/B,QAAQ,CAAC,OAAO,EAAE,gCAAgC,GAAG,UAAU;IAK/D,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,gCAAgC;IACvD,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,gCAAgC,CAAC;IAE/D,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,gCAAgC,CAAC,GAAG,YAAY;IAInF,WAAW,CAAC,OAAO,EAAE,gCAAgC,GAAG,IAAI;CAG/D"}
|
|
@@ -9,12 +9,15 @@ 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 _ParameterFieldAdapters_set;
|
|
12
|
+
var _ParameterFieldAdapters_set, _ParameterFieldAdapters_writeNotifier;
|
|
13
|
+
import { Notifier } from "@opendaw/lib-std";
|
|
13
14
|
import { Address } from "@opendaw/lib-box";
|
|
14
15
|
export class ParameterFieldAdapters {
|
|
15
16
|
constructor() {
|
|
16
17
|
_ParameterFieldAdapters_set.set(this, void 0);
|
|
18
|
+
_ParameterFieldAdapters_writeNotifier.set(this, void 0);
|
|
17
19
|
__classPrivateFieldSet(this, _ParameterFieldAdapters_set, Address.newSet(adapter => adapter.field.address), "f");
|
|
20
|
+
__classPrivateFieldSet(this, _ParameterFieldAdapters_writeNotifier, new Notifier(), "f");
|
|
18
21
|
}
|
|
19
22
|
register(adapter) {
|
|
20
23
|
__classPrivateFieldGet(this, _ParameterFieldAdapters_set, "f").add(adapter);
|
|
@@ -22,5 +25,11 @@ export class ParameterFieldAdapters {
|
|
|
22
25
|
}
|
|
23
26
|
get(address) { return __classPrivateFieldGet(this, _ParameterFieldAdapters_set, "f").get(address); }
|
|
24
27
|
opt(address) { return __classPrivateFieldGet(this, _ParameterFieldAdapters_set, "f").opt(address); }
|
|
28
|
+
subscribeWrites(observer) {
|
|
29
|
+
return __classPrivateFieldGet(this, _ParameterFieldAdapters_writeNotifier, "f").subscribe(observer);
|
|
30
|
+
}
|
|
31
|
+
notifyWrite(adapter) {
|
|
32
|
+
__classPrivateFieldGet(this, _ParameterFieldAdapters_writeNotifier, "f").notify(adapter);
|
|
33
|
+
}
|
|
25
34
|
}
|
|
26
|
-
_ParameterFieldAdapters_set = new WeakMap();
|
|
35
|
+
_ParameterFieldAdapters_set = new WeakMap(), _ParameterFieldAdapters_writeNotifier = new WeakMap();
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { bpm, ppqn, seconds, TempoMap } from "@opendaw/lib-dsp";
|
|
2
|
-
import { Observer, Subscription } from "@opendaw/lib-std";
|
|
2
|
+
import { Observer, Subscription, Terminable } from "@opendaw/lib-std";
|
|
3
3
|
import { TimelineBoxAdapter } from "./timeline/TimelineBoxAdapter";
|
|
4
4
|
/**
|
|
5
5
|
* TempoMap implementation that handles varying tempo (tempo automation).
|
|
6
6
|
* Steps through at TempoChangeGrid intervals to match BlockRenderer behavior.
|
|
7
7
|
*/
|
|
8
|
-
export declare class VaryingTempoMap implements TempoMap {
|
|
8
|
+
export declare class VaryingTempoMap implements TempoMap, Terminable {
|
|
9
9
|
#private;
|
|
10
10
|
constructor(adapter: TimelineBoxAdapter);
|
|
11
|
+
terminate(): void;
|
|
11
12
|
getTempoAt(position: ppqn): bpm;
|
|
12
13
|
ppqnToSeconds(position: ppqn): seconds;
|
|
13
14
|
secondsToPPQN(time: seconds): ppqn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VaryingTempoMap.d.ts","sourceRoot":"","sources":["../src/VaryingTempoMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAQ,OAAO,EAAmB,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACpF,OAAO,
|
|
1
|
+
{"version":3,"file":"VaryingTempoMap.d.ts","sourceRoot":"","sources":["../src/VaryingTempoMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAQ,OAAO,EAAmB,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACpF,OAAO,EAGH,QAAQ,EAER,YAAY,EACZ,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAA;AAIhE;;;GAGG;AACH,qBAAa,eAAgB,YAAW,QAAQ,EAAE,UAAU;;gBAM5C,OAAO,EAAE,kBAAkB;IAQvC,SAAS,IAAI,IAAI;IAkCjB,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,GAAG;IAQ/B,aAAa,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO;IAwCtC,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IA6ClC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO;IAKxD,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAO9D,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY;CAQxD"}
|
package/dist/VaryingTempoMap.js
CHANGED
|
@@ -9,9 +9,9 @@ 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 _VaryingTempoMap_instances, _VaryingTempoMap_adapter, _VaryingTempoMap_absoluteSecondsToPPQN;
|
|
12
|
+
var _VaryingTempoMap_instances, _VaryingTempoMap_terminator, _VaryingTempoMap_adapter, _VaryingTempoMap_ppqnCache, _VaryingTempoMap_secondsCache, _VaryingTempoMap_rebuildCache, _VaryingTempoMap_ppqnToSecondsPositive, _VaryingTempoMap_absoluteSecondsToPPQN;
|
|
13
13
|
import { PPQN, TempoChangeGrid } from "@opendaw/lib-dsp";
|
|
14
|
-
import { quantizeCeil, Terminator } from "@opendaw/lib-std";
|
|
14
|
+
import { BinarySearch, NumberComparator, quantizeCeil, Terminator } from "@opendaw/lib-std";
|
|
15
15
|
/**
|
|
16
16
|
* TempoMap implementation that handles varying tempo (tempo automation).
|
|
17
17
|
* Steps through at TempoChangeGrid intervals to match BlockRenderer behavior.
|
|
@@ -19,8 +19,15 @@ import { quantizeCeil, Terminator } from "@opendaw/lib-std";
|
|
|
19
19
|
export class VaryingTempoMap {
|
|
20
20
|
constructor(adapter) {
|
|
21
21
|
_VaryingTempoMap_instances.add(this);
|
|
22
|
+
_VaryingTempoMap_terminator.set(this, new Terminator());
|
|
22
23
|
_VaryingTempoMap_adapter.set(this, void 0);
|
|
24
|
+
_VaryingTempoMap_ppqnCache.set(this, []);
|
|
25
|
+
_VaryingTempoMap_secondsCache.set(this, []);
|
|
23
26
|
__classPrivateFieldSet(this, _VaryingTempoMap_adapter, adapter, "f");
|
|
27
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_terminator, "f").ownAll(adapter.box.bpm.subscribe(() => __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_rebuildCache).call(this)), adapter.catchupAndSubscribeTempoAutomation(() => __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_rebuildCache).call(this)));
|
|
28
|
+
}
|
|
29
|
+
terminate() {
|
|
30
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_terminator, "f").terminate();
|
|
24
31
|
}
|
|
25
32
|
getTempoAt(position) {
|
|
26
33
|
const storageBpm = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").box.bpm.getValue();
|
|
@@ -28,9 +35,9 @@ export class VaryingTempoMap {
|
|
|
28
35
|
}
|
|
29
36
|
ppqnToSeconds(position) {
|
|
30
37
|
if (position < 0) {
|
|
31
|
-
return -this.
|
|
38
|
+
return -__classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_ppqnToSecondsPositive).call(this, -position);
|
|
32
39
|
}
|
|
33
|
-
return this.
|
|
40
|
+
return __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_ppqnToSecondsPositive).call(this, position);
|
|
34
41
|
}
|
|
35
42
|
secondsToPPQN(time) {
|
|
36
43
|
return __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_absoluteSecondsToPPQN).call(this, time);
|
|
@@ -39,32 +46,12 @@ export class VaryingTempoMap {
|
|
|
39
46
|
if (fromPPQN >= toPPQN) {
|
|
40
47
|
return 0.0;
|
|
41
48
|
}
|
|
42
|
-
|
|
43
|
-
const tempoEvents = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").tempoTrackEvents;
|
|
44
|
-
if (tempoEvents.isEmpty()) {
|
|
45
|
-
return PPQN.pulsesToSeconds(toPPQN - fromPPQN, storageBpm);
|
|
46
|
-
}
|
|
47
|
-
const collection = tempoEvents.unwrap();
|
|
48
|
-
if (collection.events.isEmpty()) {
|
|
49
|
-
return PPQN.pulsesToSeconds(toPPQN - fromPPQN, storageBpm);
|
|
50
|
-
}
|
|
51
|
-
let totalSeconds = 0.0;
|
|
52
|
-
let currentPPQN = fromPPQN;
|
|
53
|
-
while (currentPPQN < toPPQN) {
|
|
54
|
-
const currentBpm = collection.valueAt(currentPPQN, storageBpm);
|
|
55
|
-
const nextGrid = quantizeCeil(currentPPQN, TempoChangeGrid);
|
|
56
|
-
const segmentEnd = nextGrid <= currentPPQN ? nextGrid + TempoChangeGrid : nextGrid;
|
|
57
|
-
const actualEnd = Math.min(segmentEnd, toPPQN);
|
|
58
|
-
totalSeconds += PPQN.pulsesToSeconds(actualEnd - currentPPQN, currentBpm);
|
|
59
|
-
currentPPQN = actualEnd;
|
|
60
|
-
}
|
|
61
|
-
return totalSeconds;
|
|
49
|
+
return __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_ppqnToSecondsPositive).call(this, toPPQN) - __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_ppqnToSecondsPositive).call(this, fromPPQN);
|
|
62
50
|
}
|
|
63
51
|
intervalToPPQN(fromSeconds, toSeconds) {
|
|
64
52
|
if (fromSeconds >= toSeconds) {
|
|
65
53
|
return 0.0;
|
|
66
54
|
}
|
|
67
|
-
// Find PPQN positions for both absolute times, return the difference
|
|
68
55
|
const fromPPQN = __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_absoluteSecondsToPPQN).call(this, fromSeconds);
|
|
69
56
|
const toPPQN = __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_absoluteSecondsToPPQN).call(this, toSeconds);
|
|
70
57
|
return toPPQN - fromPPQN;
|
|
@@ -75,7 +62,78 @@ export class VaryingTempoMap {
|
|
|
75
62
|
return terminator;
|
|
76
63
|
}
|
|
77
64
|
}
|
|
78
|
-
_VaryingTempoMap_adapter = new WeakMap(), _VaryingTempoMap_instances = new WeakSet(),
|
|
65
|
+
_VaryingTempoMap_terminator = new WeakMap(), _VaryingTempoMap_adapter = new WeakMap(), _VaryingTempoMap_ppqnCache = new WeakMap(), _VaryingTempoMap_secondsCache = new WeakMap(), _VaryingTempoMap_instances = new WeakSet(), _VaryingTempoMap_rebuildCache = function _VaryingTempoMap_rebuildCache() {
|
|
66
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f").length = 0;
|
|
67
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f").length = 0;
|
|
68
|
+
const tempoEvents = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").tempoTrackEvents;
|
|
69
|
+
if (tempoEvents.isEmpty()) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const collection = tempoEvents.unwrap();
|
|
73
|
+
if (collection.events.isEmpty()) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const events = collection.events.asArray();
|
|
77
|
+
const storageBpm = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").box.bpm.getValue();
|
|
78
|
+
const entries = [{ ppqn: 0, seconds: 0, bpm: collection.valueAt(0, storageBpm) }];
|
|
79
|
+
let accumulatedSeconds = 0.0;
|
|
80
|
+
let currentPPQN = 0.0;
|
|
81
|
+
for (const event of events) {
|
|
82
|
+
const eventPosition = event.position;
|
|
83
|
+
if (eventPosition <= currentPPQN) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
while (currentPPQN < eventPosition) {
|
|
87
|
+
const currentBpm = collection.valueAt(currentPPQN, storageBpm);
|
|
88
|
+
const nextGrid = quantizeCeil(currentPPQN, TempoChangeGrid);
|
|
89
|
+
const segmentEnd = nextGrid <= currentPPQN ? nextGrid + TempoChangeGrid : nextGrid;
|
|
90
|
+
const actualEnd = Math.min(segmentEnd, eventPosition);
|
|
91
|
+
accumulatedSeconds += PPQN.pulsesToSeconds(actualEnd - currentPPQN, currentBpm);
|
|
92
|
+
currentPPQN = actualEnd;
|
|
93
|
+
}
|
|
94
|
+
entries.push({ ppqn: eventPosition, seconds: accumulatedSeconds, bpm: collection.valueAt(eventPosition, storageBpm) });
|
|
95
|
+
}
|
|
96
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f").push(...entries);
|
|
97
|
+
const sortedBySeconds = entries.slice().sort((a, b) => a.seconds - b.seconds);
|
|
98
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f").push(...sortedBySeconds);
|
|
99
|
+
}, _VaryingTempoMap_ppqnToSecondsPositive = function _VaryingTempoMap_ppqnToSecondsPositive(position) {
|
|
100
|
+
if (position <= 0) {
|
|
101
|
+
return 0.0;
|
|
102
|
+
}
|
|
103
|
+
const storageBpm = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").box.bpm.getValue();
|
|
104
|
+
const tempoEvents = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").tempoTrackEvents;
|
|
105
|
+
if (tempoEvents.isEmpty()) {
|
|
106
|
+
return PPQN.pulsesToSeconds(position, storageBpm);
|
|
107
|
+
}
|
|
108
|
+
const collection = tempoEvents.unwrap();
|
|
109
|
+
if (collection.events.isEmpty()) {
|
|
110
|
+
return PPQN.pulsesToSeconds(position, storageBpm);
|
|
111
|
+
}
|
|
112
|
+
let startPPQN = 0.0;
|
|
113
|
+
let startSeconds = 0.0;
|
|
114
|
+
if (__classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f").length > 0) {
|
|
115
|
+
const index = BinarySearch.rightMostMapped(__classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f"), position, NumberComparator, (entry) => entry.ppqn);
|
|
116
|
+
if (index >= 0) {
|
|
117
|
+
const entry = __classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f")[index];
|
|
118
|
+
startPPQN = entry.ppqn;
|
|
119
|
+
startSeconds = entry.seconds;
|
|
120
|
+
if (index === __classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f").length - 1) {
|
|
121
|
+
return startSeconds + PPQN.pulsesToSeconds(position - startPPQN, entry.bpm);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
let accumulatedSeconds = startSeconds;
|
|
126
|
+
let currentPPQN = startPPQN;
|
|
127
|
+
while (currentPPQN < position) {
|
|
128
|
+
const currentBpm = collection.valueAt(currentPPQN, storageBpm);
|
|
129
|
+
const nextGrid = quantizeCeil(currentPPQN, TempoChangeGrid);
|
|
130
|
+
const segmentEnd = nextGrid <= currentPPQN ? nextGrid + TempoChangeGrid : nextGrid;
|
|
131
|
+
const actualEnd = Math.min(segmentEnd, position);
|
|
132
|
+
accumulatedSeconds += PPQN.pulsesToSeconds(actualEnd - currentPPQN, currentBpm);
|
|
133
|
+
currentPPQN = actualEnd;
|
|
134
|
+
}
|
|
135
|
+
return accumulatedSeconds;
|
|
136
|
+
}, _VaryingTempoMap_absoluteSecondsToPPQN = function _VaryingTempoMap_absoluteSecondsToPPQN(targetSeconds) {
|
|
79
137
|
if (targetSeconds <= 0) {
|
|
80
138
|
return 0.0;
|
|
81
139
|
}
|
|
@@ -88,8 +146,21 @@ _VaryingTempoMap_adapter = new WeakMap(), _VaryingTempoMap_instances = new WeakS
|
|
|
88
146
|
if (collection.events.isEmpty()) {
|
|
89
147
|
return PPQN.secondsToPulses(targetSeconds, storageBpm);
|
|
90
148
|
}
|
|
91
|
-
let
|
|
92
|
-
let
|
|
149
|
+
let startPPQN = 0.0;
|
|
150
|
+
let startSeconds = 0.0;
|
|
151
|
+
if (__classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f").length > 0) {
|
|
152
|
+
const index = BinarySearch.rightMostMapped(__classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f"), targetSeconds, NumberComparator, (entry) => entry.seconds);
|
|
153
|
+
if (index >= 0) {
|
|
154
|
+
const entry = __classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f")[index];
|
|
155
|
+
startPPQN = entry.ppqn;
|
|
156
|
+
startSeconds = entry.seconds;
|
|
157
|
+
if (index === __classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f").length - 1) {
|
|
158
|
+
return startPPQN + PPQN.secondsToPulses(targetSeconds - startSeconds, entry.bpm);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
let accumulatedSeconds = startSeconds;
|
|
163
|
+
let accumulatedPPQN = startPPQN;
|
|
93
164
|
while (accumulatedSeconds < targetSeconds) {
|
|
94
165
|
const currentBpm = collection.valueAt(accumulatedPPQN, storageBpm);
|
|
95
166
|
const nextGrid = quantizeCeil(accumulatedPPQN, TempoChangeGrid);
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { NeuralAmpDeviceBox } from "@opendaw/studio-boxes";
|
|
2
|
-
import { UUID } from "@opendaw/lib-std";
|
|
2
|
+
import { Option, UUID } from "@opendaw/lib-std";
|
|
3
3
|
import { Address, BooleanField, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
|
|
4
4
|
import { Pointers } from "@opendaw/studio-enums";
|
|
5
5
|
import { AudioEffectDeviceAdapter, DeviceHost } from "../../DeviceAdapter";
|
|
6
6
|
import { LabeledAudioOutput } from "../../LabeledAudioOutputsOwner";
|
|
7
7
|
import { BoxAdaptersContext } from "../../BoxAdaptersContext";
|
|
8
8
|
import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
|
|
9
|
+
import { NeuralAmpModelBoxAdapter } from "../../nam/NeuralAmpModelBoxAdapter";
|
|
9
10
|
export declare class NeuralAmpDeviceBoxAdapter implements AudioEffectDeviceAdapter {
|
|
10
11
|
#private;
|
|
11
12
|
readonly type = "audio-effect";
|
|
@@ -25,9 +26,11 @@ export declare class NeuralAmpDeviceBoxAdapter implements AudioEffectDeviceAdapt
|
|
|
25
26
|
get enabledField(): BooleanField;
|
|
26
27
|
get minimizedField(): BooleanField;
|
|
27
28
|
get host(): PointerField<Pointers.AudioEffectHost>;
|
|
28
|
-
get
|
|
29
|
+
get modelField(): PointerField<Pointers.NeuralAmpModel>;
|
|
29
30
|
get monoField(): BooleanField;
|
|
30
31
|
get spectrum(): Address;
|
|
32
|
+
getModelAdapter(): Option<NeuralAmpModelBoxAdapter>;
|
|
33
|
+
getModelJson(): string;
|
|
31
34
|
deviceHost(): DeviceHost;
|
|
32
35
|
audioUnitBoxAdapter(): AudioUnitBoxAdapter;
|
|
33
36
|
labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeuralAmpDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/NeuralAmpDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"NeuralAmpDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/NeuralAmpDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAoB,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAC,MAAM,EAAiB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAG3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAC,wBAAwB,EAAC,MAAM,oCAAoC,CAAA;AAE3E,qBAAa,yBAA0B,YAAW,wBAAwB;;IACtE,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAC1B,QAAQ,CAAC,SAAS,sCAA6B;IAM/C,QAAQ,CAAC,cAAc;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB;IAOhE,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwB;IAC1E,IAAI,UAAU,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAyB;IAChF,IAAI,SAAS,IAAI,YAAY,CAAwB;IACrD,IAAI,QAAQ,IAAI,OAAO,CAAyC;IAEhE,eAAe,IAAI,MAAM,CAAC,wBAAwB,CAAC;IAMnD,YAAY,IAAI,MAAM;IAQtB,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAExC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIrD,SAAS,IAAI,IAAI;CAmBpB"}
|
|
@@ -14,6 +14,7 @@ import { Option, StringMapping, ValueMapping } from "@opendaw/lib-std";
|
|
|
14
14
|
import { Devices } from "../../DeviceAdapter";
|
|
15
15
|
import { DeviceManualUrls } from "../../DeviceManualUrls";
|
|
16
16
|
import { ParameterAdapterSet } from "../../ParameterAdapterSet";
|
|
17
|
+
import { NeuralAmpModelBoxAdapter } from "../../nam/NeuralAmpModelBoxAdapter";
|
|
17
18
|
export class NeuralAmpDeviceBoxAdapter {
|
|
18
19
|
constructor(context, box) {
|
|
19
20
|
_NeuralAmpDeviceBoxAdapter_instances.add(this);
|
|
@@ -36,9 +37,23 @@ export class NeuralAmpDeviceBoxAdapter {
|
|
|
36
37
|
get enabledField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").enabled; }
|
|
37
38
|
get minimizedField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").minimized; }
|
|
38
39
|
get host() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").host; }
|
|
39
|
-
get
|
|
40
|
+
get modelField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").model; }
|
|
40
41
|
get monoField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").mono; }
|
|
41
42
|
get spectrum() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").address.append(0xFFF); }
|
|
43
|
+
getModelAdapter() {
|
|
44
|
+
const target = __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").model.targetVertex;
|
|
45
|
+
if (target.isEmpty()) {
|
|
46
|
+
return Option.None;
|
|
47
|
+
}
|
|
48
|
+
return Option.wrap(__classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_context, "f").boxAdapters.adapterFor(target.unwrap().box, NeuralAmpModelBoxAdapter));
|
|
49
|
+
}
|
|
50
|
+
getModelJson() {
|
|
51
|
+
const modelAdapter = this.getModelAdapter();
|
|
52
|
+
if (modelAdapter.nonEmpty()) {
|
|
53
|
+
return modelAdapter.unwrap().getModelJson();
|
|
54
|
+
}
|
|
55
|
+
return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").modelJson.getValue();
|
|
56
|
+
}
|
|
42
57
|
deviceHost() {
|
|
43
58
|
return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_context, "f").boxAdapters
|
|
44
59
|
.adapterFor(__classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
|
package/dist/index.d.ts
CHANGED
|
@@ -102,6 +102,7 @@ export * from "./modular/modules/delay";
|
|
|
102
102
|
export * from "./modular/modules/gain";
|
|
103
103
|
export * from "./modular/modules/multiplier";
|
|
104
104
|
export * from "./modular/user-interface";
|
|
105
|
+
export * from "./nam/NeuralAmpModelBoxAdapter";
|
|
105
106
|
export * from "./offline-renderer";
|
|
106
107
|
export * from "./preset/PresetDecoder";
|
|
107
108
|
export * from "./preset/PresetEncoder";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -104,6 +104,7 @@ export * from "./modular/modules/delay";
|
|
|
104
104
|
export * from "./modular/modules/gain";
|
|
105
105
|
export * from "./modular/modules/multiplier";
|
|
106
106
|
export * from "./modular/user-interface";
|
|
107
|
+
export * from "./nam/NeuralAmpModelBoxAdapter";
|
|
107
108
|
export * from "./offline-renderer";
|
|
108
109
|
export * from "./preset/PresetDecoder";
|
|
109
110
|
export * from "./preset/PresetEncoder";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NeuralAmpModelBox } from "@opendaw/studio-boxes";
|
|
2
|
+
import { UUID } from "@opendaw/lib-std";
|
|
3
|
+
import { Address, StringField } from "@opendaw/lib-box";
|
|
4
|
+
import { BoxAdaptersContext } from "../BoxAdaptersContext";
|
|
5
|
+
import { BoxAdapter } from "../BoxAdapter";
|
|
6
|
+
export declare class NeuralAmpModelBoxAdapter implements BoxAdapter {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(context: BoxAdaptersContext, box: NeuralAmpModelBox);
|
|
9
|
+
get box(): NeuralAmpModelBox;
|
|
10
|
+
get uuid(): UUID.Bytes;
|
|
11
|
+
get address(): Address;
|
|
12
|
+
get labelField(): StringField;
|
|
13
|
+
get modelField(): StringField;
|
|
14
|
+
getModelJson(): string;
|
|
15
|
+
terminate(): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=NeuralAmpModelBoxAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeuralAmpModelBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/nam/NeuralAmpModelBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAExC,qBAAa,wBAAyB,YAAW,UAAU;;gBAI3C,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,iBAAiB;IAK/D,IAAI,GAAG,IAAI,iBAAiB,CAAmB;IAC/C,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,UAAU,IAAI,WAAW,CAAyB;IAEtD,YAAY,IAAI,MAAM;IAItB,SAAS,IAAI,IAAI;CACpB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
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
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _NeuralAmpModelBoxAdapter_context, _NeuralAmpModelBoxAdapter_box;
|
|
13
|
+
export class NeuralAmpModelBoxAdapter {
|
|
14
|
+
constructor(context, box) {
|
|
15
|
+
_NeuralAmpModelBoxAdapter_context.set(this, void 0);
|
|
16
|
+
_NeuralAmpModelBoxAdapter_box.set(this, void 0);
|
|
17
|
+
__classPrivateFieldSet(this, _NeuralAmpModelBoxAdapter_context, context, "f");
|
|
18
|
+
__classPrivateFieldSet(this, _NeuralAmpModelBoxAdapter_box, box, "f");
|
|
19
|
+
}
|
|
20
|
+
get box() { return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f"); }
|
|
21
|
+
get uuid() { return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f").address.uuid; }
|
|
22
|
+
get address() { return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f").address; }
|
|
23
|
+
get labelField() { return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f").label; }
|
|
24
|
+
get modelField() { return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f").model; }
|
|
25
|
+
getModelJson() {
|
|
26
|
+
return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f").model.getValue();
|
|
27
|
+
}
|
|
28
|
+
terminate() { }
|
|
29
|
+
}
|
|
30
|
+
_NeuralAmpModelBoxAdapter_context = new WeakMap(), _NeuralAmpModelBoxAdapter_box = new WeakMap();
|
|
@@ -103,7 +103,7 @@ export var ProjectUtils;
|
|
|
103
103
|
...dependencies
|
|
104
104
|
.map(box => ({
|
|
105
105
|
source: box.address.uuid,
|
|
106
|
-
target: box.resource === "
|
|
106
|
+
target: box.resource === "preserved" ? box.address.uuid : UUID.generate()
|
|
107
107
|
}))
|
|
108
108
|
]);
|
|
109
109
|
return uuidMap;
|
|
@@ -111,7 +111,7 @@ export var ProjectUtils;
|
|
|
111
111
|
const copy = (uuidMap, boxGraph, audioUnitBoxes, dependencies) => {
|
|
112
112
|
const existingExternalResourceUUIDs = UUID.newSet(uuid => uuid);
|
|
113
113
|
dependencies.forEach((source) => {
|
|
114
|
-
if (source.resource === "
|
|
114
|
+
if (source.resource === "preserved" && boxGraph.findBox(source.address.uuid).nonEmpty()) {
|
|
115
115
|
existingExternalResourceUUIDs.add(source.address.uuid);
|
|
116
116
|
}
|
|
117
117
|
});
|
package/dist/protocols.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ import { AudioData, ppqn } from "@opendaw/lib-dsp";
|
|
|
3
3
|
import { ClipSequencingUpdates } from "./ClipNotifications";
|
|
4
4
|
import { NoteSignal } from "./NoteSignal";
|
|
5
5
|
import type { SoundFont2 } from "soundfont2";
|
|
6
|
+
export type MonitoringMapEntry = {
|
|
7
|
+
uuid: UUID.Bytes;
|
|
8
|
+
channels: ReadonlyArray<int>;
|
|
9
|
+
};
|
|
6
10
|
export interface EngineCommands extends Terminable {
|
|
7
11
|
play(): void;
|
|
8
12
|
stop(reset: boolean): void;
|
|
@@ -17,6 +21,7 @@ export interface EngineCommands extends Terminable {
|
|
|
17
21
|
scheduleClipStop(trackIds: ReadonlyArray<UUID.Bytes>): void;
|
|
18
22
|
setupMIDI(port: MessagePort, buffer: SharedArrayBuffer): void;
|
|
19
23
|
loadClickSound(index: 0 | 1, data: AudioData): void;
|
|
24
|
+
updateMonitoringMap(map: ReadonlyArray<MonitoringMapEntry>): void;
|
|
20
25
|
}
|
|
21
26
|
export interface EngineToClient {
|
|
22
27
|
log(message: string): void;
|
package/dist/protocols.d.ts.map
CHANGED
|
@@ -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;IAE7D,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;
|
|
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,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;CAAE,CAAA;AAEnF,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;IAEnD,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;CACpE;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,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACpC,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"}
|
|
@@ -137,10 +137,10 @@ export class ValueEventCollectionBoxAdapter {
|
|
|
137
137
|
}
|
|
138
138
|
subscribeChange(observer) { return __classPrivateFieldGet(this, _ValueEventCollectionBoxAdapter_changeNotifier, "f").subscribe(observer); }
|
|
139
139
|
createEvent({ position, index, value, interpolation }) {
|
|
140
|
-
// Position is stored as integer in box, so truncate for comparison to prevent duplicates
|
|
141
140
|
const intPosition = Math.trunc(position);
|
|
142
141
|
const existing = __classPrivateFieldGet(this, _ValueEventCollectionBoxAdapter_adapters, "f").values().find(event => event.position === intPosition && event.index === index);
|
|
143
|
-
|
|
142
|
+
// the adapters might be out of sync until the current transaction ends. Therefore, we check with isAttached.
|
|
143
|
+
if (isDefined(existing) && existing.box.isAttached()) {
|
|
144
144
|
// Return an existing event instead of creating a duplicate-update its value
|
|
145
145
|
existing.box.value.setValue(value);
|
|
146
146
|
InterpolationFieldAdapter.write(existing.box.interpolation, interpolation);
|
|
@@ -70,7 +70,7 @@ export declare class AudioRegionBoxAdapter implements AudioContentBoxAdapter, Lo
|
|
|
70
70
|
moveContentStart(delta: ppqn): void;
|
|
71
71
|
copyTo(params?: CopyToParams): AudioRegionBoxAdapter;
|
|
72
72
|
consolidate(): void;
|
|
73
|
-
canFlatten(
|
|
73
|
+
canFlatten(regions: ReadonlyArray<RegionBoxAdapter<unknown>>): boolean;
|
|
74
74
|
flatten(_regions: ReadonlyArray<RegionBoxAdapter<unknown>>): Option<AudioRegionBox>;
|
|
75
75
|
terminate(): void;
|
|
76
76
|
toString(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioRegionBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/region/AudioRegionBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AudioRegionBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/region/AudioRegionBoxAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 _AudioRegionBoxAdapter_instances, _AudioRegionBoxAdapter_terminator, _AudioRegionBoxAdapter_context, _AudioRegionBoxAdapter_box, _AudioRegionBoxAdapter_durationConverter, _AudioRegionBoxAdapter_loopDurationConverter, _AudioRegionBoxAdapter_playMode, _AudioRegionBoxAdapter_changeNotifier, _AudioRegionBoxAdapter_fadingAdapter, _AudioRegionBoxAdapter_constructing, _AudioRegionBoxAdapter_fileAdapter, _AudioRegionBoxAdapter_fileSubscription, _AudioRegionBoxAdapter_playModeSubscription, _AudioRegionBoxAdapter_tempoSubscription, _AudioRegionBoxAdapter_eventCollectionSubscription, _AudioRegionBoxAdapter_isSelected, _AudioRegionBoxAdapter_dispatchChange;
|
|
13
|
-
import { asEnumValue, isInstanceOf, mod, MutableObservableOption, Notifier, Option, safeExecute, Terminable, Terminator, UUID } from "@opendaw/lib-std";
|
|
13
|
+
import { Arrays, asEnumValue, isInstanceOf, mod, MutableObservableOption, Notifier, Option, safeExecute, Terminable, Terminator, UUID } from "@opendaw/lib-std";
|
|
14
14
|
import { TimeBase, TimeBaseConverter } from "@opendaw/lib-dsp";
|
|
15
15
|
import { Propagation } from "@opendaw/lib-box";
|
|
16
16
|
import { AudioRegionBox } from "@opendaw/studio-boxes";
|
|
@@ -221,10 +221,12 @@ export class AudioRegionBoxAdapter {
|
|
|
221
221
|
adapter.duration = params?.duration ?? this.resolveDuration(adapter.position);
|
|
222
222
|
return adapter;
|
|
223
223
|
}
|
|
224
|
-
consolidate() {
|
|
225
|
-
|
|
224
|
+
consolidate() { }
|
|
225
|
+
canFlatten(regions) {
|
|
226
|
+
return regions.length > 0
|
|
227
|
+
&& Arrays.satisfy(regions, (a, b) => a.trackBoxAdapter.contains(b.trackBoxAdapter.unwrap()))
|
|
228
|
+
&& regions.every(region => region.isSelected && region instanceof AudioRegionBoxAdapter);
|
|
226
229
|
}
|
|
227
|
-
canFlatten(_regions) { return false; }
|
|
228
230
|
flatten(_regions) {
|
|
229
231
|
// TODO This needs to done by creating a new audio file
|
|
230
232
|
return Option.None;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendaw/studio-adapters",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.82",
|
|
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.72",
|
|
27
|
+
"@opendaw/lib-dsp": "^0.0.71",
|
|
28
|
+
"@opendaw/lib-fusion": "^0.0.77",
|
|
29
|
+
"@opendaw/lib-runtime": "^0.0.69",
|
|
30
|
+
"@opendaw/lib-std": "^0.0.68",
|
|
31
|
+
"@opendaw/studio-boxes": "^0.0.74",
|
|
32
|
+
"@opendaw/studio-enums": "^0.0.63",
|
|
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": "
|
|
39
|
+
"gitHead": "5e97da8bbe6085b04c34b9ff7e816b22225bf915"
|
|
40
40
|
}
|