@opendaw/studio-adapters 0.0.79 → 0.0.80
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/BoxAdapters.d.ts +2 -1
- package/dist/BoxAdapters.d.ts.map +1 -1
- package/dist/BoxAdapters.js +1 -0
- package/dist/DeviceAdapter.d.ts +2 -0
- package/dist/DeviceAdapter.d.ts.map +1 -1
- package/dist/DeviceBox.d.ts.map +1 -1
- package/dist/DeviceBox.js +3 -8
- package/dist/EngineProcessorAttachment.d.ts +1 -0
- package/dist/EngineProcessorAttachment.d.ts.map +1 -1
- package/dist/EngineStateSchema.d.ts +3 -0
- package/dist/EngineStateSchema.d.ts.map +1 -1
- package/dist/EngineStateSchema.js +5 -1
- package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.d.ts.map +1 -1
- package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.js +3 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/project/ProjectUtils.d.ts.map +1 -1
- package/dist/project/ProjectUtils.js +39 -44
- package/dist/timeline/TrackBoxAdapter.d.ts +2 -2
- package/dist/timeline/TrackBoxAdapter.d.ts.map +1 -1
- package/dist/timeline/TrackBoxAdapter.js +36 -30
- package/dist/timeline/event/SelectableValueEvent.d.ts +5 -0
- package/dist/timeline/event/SelectableValueEvent.d.ts.map +1 -0
- package/dist/timeline/event/SelectableValueEvent.js +1 -0
- package/dist/timeline/region/AudioRegionBoxAdapter.d.ts +2 -0
- package/dist/timeline/region/AudioRegionBoxAdapter.d.ts.map +1 -1
- package/dist/timeline/region/AudioRegionBoxAdapter.js +16 -3
- package/dist/timeline/region/FadingAdapter.d.ts +19 -0
- package/dist/timeline/region/FadingAdapter.d.ts.map +1 -0
- package/dist/timeline/region/FadingAdapter.js +41 -0
- package/package.json +38 -38
package/dist/BoxAdapters.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AssertType, Class, Terminable } from "@opendaw/lib-std";
|
|
1
|
+
import { AssertType, Class, Option, Terminable } from "@opendaw/lib-std";
|
|
2
2
|
import { Box } from "@opendaw/lib-box";
|
|
3
3
|
import { BoxAdaptersContext } from "./BoxAdaptersContext";
|
|
4
4
|
import { BoxAdapter } from "./BoxAdapter";
|
|
@@ -7,5 +7,6 @@ export declare class BoxAdapters implements Terminable {
|
|
|
7
7
|
constructor(context: BoxAdaptersContext);
|
|
8
8
|
terminate(): void;
|
|
9
9
|
adapterFor<BOX extends Box, T extends BoxAdapter>(box: BOX, checkType: Class<T> | AssertType<T>): T;
|
|
10
|
+
optAdapter(box: Box): Option<BoxAdapter>;
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=BoxAdapters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,
|
|
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;AAqG5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAuBvC,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;CAiE3C"}
|
package/dist/BoxAdapters.js
CHANGED
|
@@ -114,6 +114,7 @@ export class BoxAdapters {
|
|
|
114
114
|
}
|
|
115
115
|
return panic("Unknown checkType method");
|
|
116
116
|
}
|
|
117
|
+
optAdapter(box) { return __classPrivateFieldGet(this, _BoxAdapters_adapters, "f").opt(box.address.uuid); }
|
|
117
118
|
}
|
|
118
119
|
_BoxAdapters_context = new WeakMap(), _BoxAdapters_adapters = new WeakMap(), _BoxAdapters_deleted = new WeakMap(), _BoxAdapters_terminable = new WeakMap(), _BoxAdapters_instances = new WeakSet(), _BoxAdapters_create = function _BoxAdapters_create(unknownBox) {
|
|
119
120
|
return asDefined(unknownBox.accept({
|
package/dist/DeviceAdapter.d.ts
CHANGED
|
@@ -37,8 +37,10 @@ export interface InstrumentDeviceBoxAdapter extends DeviceBoxAdapter, LabeledAud
|
|
|
37
37
|
export interface DeviceHost extends BoxAdapter, LabeledAudioOutputsOwner {
|
|
38
38
|
readonly class: "device-host";
|
|
39
39
|
get midiEffects(): IndexedBoxAdapterCollection<MidiEffectDeviceAdapter, Pointers.MIDIEffectHost>;
|
|
40
|
+
get midiEffectsField(): Field<Pointers.MIDIEffectHost>;
|
|
40
41
|
get inputAdapter(): Option<AudioUnitInputAdapter>;
|
|
41
42
|
get audioEffects(): IndexedBoxAdapterCollection<AudioEffectDeviceAdapter, Pointers.AudioEffectHost>;
|
|
43
|
+
get audioEffectsField(): Field<Pointers.AudioEffectHost>;
|
|
42
44
|
get inputField(): Field<Pointers.InstrumentHost | Pointers.AudioOutput>;
|
|
43
45
|
get tracksField(): Field<Pointers.TrackCollection>;
|
|
44
46
|
get minimizedField(): BooleanField;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceAdapter.d.ts","sourceRoot":"","sources":["../src/DeviceAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DeviceAdapter.d.ts","sourceRoot":"","sources":["../src/DeviceAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAChG,OAAO,EAAiB,UAAU,EAAO,MAAM,EAAc,MAAM,kBAAkB,CAAA;AACrF,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAA;AAEpE,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAA;AAEnE,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,KAAK,GAAG,YAAY,GAAG,cAAc,CAAA;AAC9E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAA;AAEpD,yBAAiB,aAAa,CAAC;IACpB,MAAM,WAAW,GAAI,MAAM,aAAa,sCAS9C,CAAA;CACJ;AAED,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC5F,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,wBAAwB;IACxH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAA;AAElF,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,gBAAgB;IAC7G,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;IAElC,IAAI,UAAU,IAAI,UAAU,CAAA;IAC5B,IAAI,YAAY,IAAI,YAAY,CAAA;IAChC,IAAI,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB,EAAE,wBAAwB;IAC1F,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAE3B,IAAI,SAAS,IAAI,WAAW,CAAA;IAC5B,IAAI,gBAAgB,IAAI,SAAS,CAAA;IACjC,IAAI,iBAAiB,IAAI,OAAO,CAAA;CACnC;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU,EAAE,wBAAwB;IACpE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAE7B,IAAI,WAAW,IAAI,2BAA2B,CAAC,uBAAuB,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;IAChG,IAAI,gBAAgB,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IACtD,IAAI,YAAY,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAA;IACjD,IAAI,YAAY,IAAI,2BAA2B,CAAC,wBAAwB,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;IACnG,IAAI,iBAAiB,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;IACxD,IAAI,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IACvE,IAAI,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;IAClD,IAAI,cAAc,IAAI,YAAY,CAAA;IAClC,IAAI,WAAW,IAAI,OAAO,CAAA;IAC1B,IAAI,KAAK,IAAI,MAAM,CAAA;IAEnB,UAAU,IAAI,UAAU,CAAA;IACxB,mBAAmB,IAAI,mBAAmB,CAAA;CAC7C;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAChD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAE1B,IAAI,GAAG,IAAI,GAAG,CAAA;IACd,IAAI,UAAU,IAAI,WAAW,CAAA;IAC7B,IAAI,YAAY,IAAI,YAAY,CAAA;IAChC,IAAI,cAAc,IAAI,YAAY,CAAA;IAClC,IAAI,OAAO,IAAI,aAAa,CAAA;IAE5B,UAAU,IAAI,UAAU,CAAA;IACxB,mBAAmB,IAAI,mBAAmB,CAAA;CAC7C;AAED,yBAAiB,OAAO,CAAC;IACd,MAAM,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAG6B,CAAA;IACrE,MAAM,QAAQ,EAAE,UAAU,CAAC,sBAAsB,CAEkB,CAAA;IACnE,MAAM,YAAY,EAAE,UAAU,CAAC,0BAA0B,CACyC,CAAA;IAClG,MAAM,YAAY,EAAE,UAAU,CAAC,uBAAuB,CAC6C,CAAA;IACnG,MAAM,aAAa,EAAE,UAAU,CAAC,wBAAwB,CAC4C,CAAA;IACpG,MAAM,MAAM,EAAE,UAAU,CAAC,UAAU,CAC0D,CAAA;IAE7F,MAAM,mBAAmB,GAAI,SAAS,aAAa,CAAC,sBAAsB,CAAC,KAAG,IAepF,CAAA;CACJ"}
|
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,
|
|
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"}
|
package/dist/DeviceBox.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import { Pointers } from "@opendaw/studio-enums";
|
|
2
1
|
import { BooleanField, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
|
|
3
2
|
import { isDefined, isInstanceOf, panic } from "@opendaw/lib-std";
|
|
4
3
|
export var DeviceBoxUtils;
|
|
5
4
|
(function (DeviceBoxUtils) {
|
|
6
|
-
DeviceBoxUtils.isDeviceBox = (box) =>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"minimized" in box && isInstanceOf(box.minimized, BooleanField);
|
|
10
|
-
DeviceBoxUtils.isInstrumentDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && box.host.pointerType === Pointers.InstrumentHost;
|
|
11
|
-
DeviceBoxUtils.isEffectDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && "index" in box && isInstanceOf(box.index, Int32Field) &&
|
|
12
|
-
(box.host.pointerType === Pointers.MIDIEffectHost || box.host.pointerType === Pointers.AudioEffectHost);
|
|
5
|
+
DeviceBoxUtils.isDeviceBox = (box) => box.tags.type === "device";
|
|
6
|
+
DeviceBoxUtils.isInstrumentDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && box.tags.deviceType === "instrument";
|
|
7
|
+
DeviceBoxUtils.isEffectDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && (box.tags.deviceType === "audio-effect" || box.tags.deviceType === "midi-effect");
|
|
13
8
|
DeviceBoxUtils.lookupHostField = (box) => isDefined(box) && "host" in box && isInstanceOf(box.host, PointerField)
|
|
14
9
|
? box.host : panic(`Could not find 'host' field in '${box?.name}'`);
|
|
15
10
|
DeviceBoxUtils.lookupLabelField = (box) => isDefined(box) && "label" in box && isInstanceOf(box.label, StringField)
|
|
@@ -3,6 +3,7 @@ export type ProcessorOptions = {};
|
|
|
3
3
|
export type EngineProcessorAttachment = {
|
|
4
4
|
syncStreamBuffer: SharedArrayBuffer;
|
|
5
5
|
controlFlagsBuffer: SharedArrayBuffer;
|
|
6
|
+
hrClockBuffer: SharedArrayBuffer;
|
|
6
7
|
project: ArrayBufferLike;
|
|
7
8
|
exportConfiguration?: ExportStemsConfiguration;
|
|
8
9
|
options?: ProcessorOptions;
|
|
@@ -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,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,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,5 @@
|
|
|
1
1
|
import { Schema } from "@opendaw/lib-std";
|
|
2
|
+
export declare const PERF_BUFFER_SIZE = 512;
|
|
2
3
|
export declare const EngineStateSchema: () => Schema.IO<{
|
|
3
4
|
position: number;
|
|
4
5
|
bpm: number;
|
|
@@ -7,6 +8,8 @@ export declare const EngineStateSchema: () => Schema.IO<{
|
|
|
7
8
|
isPlaying: boolean;
|
|
8
9
|
isCountingIn: boolean;
|
|
9
10
|
isRecording: boolean;
|
|
11
|
+
perfIndex: number;
|
|
12
|
+
perfBuffer: Float32Array<ArrayBufferLike>;
|
|
10
13
|
}>;
|
|
11
14
|
export type EngineState = ReturnType<typeof EngineStateSchema>["object"];
|
|
12
15
|
//# sourceMappingURL=EngineStateSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineStateSchema.d.ts","sourceRoot":"","sources":["../src/EngineStateSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"EngineStateSchema.d.ts","sourceRoot":"","sources":["../src/EngineStateSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAGvC,eAAO,MAAM,gBAAgB,MAAM,CAAA;AAEnC,eAAO,MAAM,iBAAiB;;;;;;;;;;EAU5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Schema } from "@opendaw/lib-std";
|
|
2
|
+
// Ring buffer size: ~1 second at 48kHz = 375 blocks, use 512 (power of 2)
|
|
3
|
+
export const PERF_BUFFER_SIZE = 512;
|
|
2
4
|
export const EngineStateSchema = Schema.createBuilder({
|
|
3
5
|
position: Schema.float,
|
|
4
6
|
bpm: Schema.float,
|
|
@@ -6,5 +8,7 @@ export const EngineStateSchema = Schema.createBuilder({
|
|
|
6
8
|
countInBeatsRemaining: Schema.float,
|
|
7
9
|
isPlaying: Schema.bool,
|
|
8
10
|
isCountingIn: Schema.bool,
|
|
9
|
-
isRecording: Schema.bool
|
|
11
|
+
isRecording: Schema.bool,
|
|
12
|
+
perfIndex: Schema.int32,
|
|
13
|
+
perfBuffer: Schema.floats(PERF_BUFFER_SIZE)
|
|
10
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayfieldSampleBoxAdapter.d.ts","sourceRoot":"","sources":["../../../../src/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"PlayfieldSampleBoxAdapter.d.ts","sourceRoot":"","sources":["../../../../src/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
11
11
|
};
|
|
12
12
|
var _PlayfieldSampleBoxAdapter_instances, _PlayfieldSampleBoxAdapter_terminator, _PlayfieldSampleBoxAdapter_context, _PlayfieldSampleBoxAdapter_box, _PlayfieldSampleBoxAdapter_midiEffects, _PlayfieldSampleBoxAdapter_audioEffects, _PlayfieldSampleBoxAdapter_parametric, _PlayfieldSampleBoxAdapter_file, _PlayfieldSampleBoxAdapter_wrapParameters;
|
|
13
13
|
import { Pointers } from "@opendaw/studio-enums";
|
|
14
|
-
import { PlayfieldSampleBox } from "@opendaw/studio-boxes";
|
|
15
|
-
import { Option, StringMapping, Terminator, UUID, ValueMapping } from "@opendaw/lib-std";
|
|
14
|
+
import { AudioFileBox, PlayfieldSampleBox } from "@opendaw/studio-boxes";
|
|
15
|
+
import { asInstanceOf, Option, StringMapping, Terminator, UUID, ValueMapping } from "@opendaw/lib-std";
|
|
16
16
|
import { Devices } from "../../../DeviceAdapter";
|
|
17
17
|
import { IndexedBoxAdapterCollection } from "../../../IndexedBoxAdapterCollection";
|
|
18
18
|
import { ParameterAdapterSet } from "../../../ParameterAdapterSet";
|
|
@@ -103,7 +103,7 @@ export class PlayfieldSampleBoxAdapter {
|
|
|
103
103
|
get audioEffects() {
|
|
104
104
|
return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_audioEffects, "f");
|
|
105
105
|
}
|
|
106
|
-
get labelField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").
|
|
106
|
+
get labelField() { return asInstanceOf(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.targetVertex.unwrap().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() {
|
package/dist/index.d.ts
CHANGED
|
@@ -147,8 +147,10 @@ export * from "./timeline/collection/NoteEventCollectionBoxAdapter";
|
|
|
147
147
|
export * from "./timeline/collection/ValueEventCollectionBoxAdapter";
|
|
148
148
|
export * from "./timeline/event/InterpolationFieldAdapter";
|
|
149
149
|
export * from "./timeline/event/NoteEventBoxAdapter";
|
|
150
|
+
export * from "./timeline/event/SelectableValueEvent";
|
|
150
151
|
export * from "./timeline/event/ValueEventBoxAdapter";
|
|
151
152
|
export * from "./timeline/region/AudioRegionBoxAdapter";
|
|
153
|
+
export * from "./timeline/region/FadingAdapter";
|
|
152
154
|
export * from "./timeline/region/MutableRegion";
|
|
153
155
|
export * from "./timeline/region/NoteRegionBoxAdapter";
|
|
154
156
|
export * from "./timeline/region/ValueRegionBoxAdapter";
|
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
|
@@ -149,8 +149,10 @@ export * from "./timeline/collection/NoteEventCollectionBoxAdapter";
|
|
|
149
149
|
export * from "./timeline/collection/ValueEventCollectionBoxAdapter";
|
|
150
150
|
export * from "./timeline/event/InterpolationFieldAdapter";
|
|
151
151
|
export * from "./timeline/event/NoteEventBoxAdapter";
|
|
152
|
+
export * from "./timeline/event/SelectableValueEvent";
|
|
152
153
|
export * from "./timeline/event/ValueEventBoxAdapter";
|
|
153
154
|
export * from "./timeline/region/AudioRegionBoxAdapter";
|
|
155
|
+
export * from "./timeline/region/FadingAdapter";
|
|
154
156
|
export * from "./timeline/region/MutableRegion";
|
|
155
157
|
export * from "./timeline/region/NoteRegionBoxAdapter";
|
|
156
158
|
export * from "./timeline/region/ValueRegionBoxAdapter";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectUtils.d.ts","sourceRoot":"","sources":["../../src/project/ProjectUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"ProjectUtils.d.ts","sourceRoot":"","sources":["../../src/project/ProjectUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAarC,OAAO,EAAC,YAAY,EAAmD,MAAM,uBAAuB,CAAA;AAEpG,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,YAAY,EAAgB,MAAM,WAAW,CAAA;AAGrD,yBAAiB,YAAY,CAAC;IAUnB,MAAM,iBAAiB,GAAI,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,4DAAwD,eAAe,EACvE,UAAS;QACL,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;KACxB,KAClC,aAAa,CAAC,YAAY,CAyB/B,CAAA;IAEM,MAAM,cAAc,GAAI,aAAa,aAAa,CAAC,YAAY,CAAC,EACxC,4DAAwD,eAAe,EACvE,iBAAgB,IAAU,KAAG,IA+C3D,CAAA;CA6FJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Arrays, asInstanceOf, assert, ByteArrayInput, isInstanceOf,
|
|
2
|
-
import {
|
|
1
|
+
import { Arrays, asInstanceOf, assert, ByteArrayInput, isInstanceOf, SetMultimap, UUID } from "@opendaw/lib-std";
|
|
2
|
+
import { AudioUnitBox, AuxSendBox, TrackBox } from "@opendaw/studio-boxes";
|
|
3
3
|
import { IndexedBox, PointerField } from "@opendaw/lib-box";
|
|
4
4
|
import { UnionBoxTypes } from "../unions";
|
|
5
5
|
import { AudioUnitOrdering } from "../factories/AudioUnitOrdering";
|
|
@@ -10,24 +10,20 @@ export var ProjectUtils;
|
|
|
10
10
|
const excludeTimelinePredicate = (box) => box.accept({
|
|
11
11
|
visitTrackBox: (_box) => true
|
|
12
12
|
}) === true;
|
|
13
|
+
const shouldExclude = (box) => box.ephemeral || box.name === AuxSendBox.ClassName;
|
|
13
14
|
ProjectUtils.extractAudioUnits = (audioUnitBoxes, { boxGraph, mandatoryBoxes: { primaryAudioBus, rootBox } }, options = {}) => {
|
|
14
15
|
assert(Arrays.satisfy(audioUnitBoxes, isSameGraph), "AudioUnits must share the same BoxGraph");
|
|
15
|
-
// TODO Implement include options.
|
|
16
16
|
assert(!options.includeAux && !options.includeBus, "Options are not yet implemented");
|
|
17
|
-
const excludeBox = options?.excludeTimeline === true
|
|
18
|
-
// Get dependencies using outgoing pointers only (no mandatory incoming following)
|
|
19
|
-
// This avoids pulling in boxes from previous copies that point to shared AudioFileBox
|
|
20
|
-
const baseDeps = audioUnitBoxes
|
|
21
|
-
.flatMap(box => Array.from(box.graph.dependenciesOf(box, { alwaysFollowMandatory: false, excludeBox }).boxes));
|
|
22
|
-
// Explicitly add instruments (they have mandatory incoming pointer to AudioUnitBox.input)
|
|
23
|
-
const instruments = audioUnitBoxes
|
|
24
|
-
.flatMap(audioUnitBox => audioUnitBox.input.pointerHub.incoming().map(({ box }) => box));
|
|
25
|
-
// Deduplicate by UUID
|
|
17
|
+
const excludeBox = (box) => shouldExclude(box) || (options?.excludeTimeline === true && excludeTimelinePredicate(box));
|
|
26
18
|
const seen = UUID.newSet(uuid => uuid);
|
|
27
|
-
const dependencies =
|
|
28
|
-
.
|
|
19
|
+
const dependencies = audioUnitBoxes
|
|
20
|
+
.flatMap(box => Array.from(box.graph.dependenciesOf(box, {
|
|
21
|
+
alwaysFollowMandatory: true,
|
|
22
|
+
stopAtResources: true,
|
|
23
|
+
excludeBox
|
|
24
|
+
}).boxes))
|
|
29
25
|
.filter(box => {
|
|
30
|
-
if (seen.
|
|
26
|
+
if (seen.hasKey(box.address.uuid)) {
|
|
31
27
|
return false;
|
|
32
28
|
}
|
|
33
29
|
seen.add(box.address.uuid);
|
|
@@ -46,7 +42,6 @@ export var ProjectUtils;
|
|
|
46
42
|
const regionBoxSet = new Set(regionBoxes);
|
|
47
43
|
const trackBoxSet = new Set();
|
|
48
44
|
const audioUnitBoxSet = new SetMultimap();
|
|
49
|
-
// Collect AudioUnits and Tracks
|
|
50
45
|
regionBoxes.forEach(regionBox => {
|
|
51
46
|
const trackBox = asInstanceOf(regionBox.regions.targetVertex.unwrap().box, TrackBox);
|
|
52
47
|
trackBoxSet.add(trackBox);
|
|
@@ -56,15 +51,18 @@ export var ProjectUtils;
|
|
|
56
51
|
console.debug(`Found ${audioUnitBoxSet.keyCount()} audioUnits`);
|
|
57
52
|
console.debug(`Found ${trackBoxSet.size} tracks`);
|
|
58
53
|
const audioUnitBoxes = [...audioUnitBoxSet.keys()];
|
|
59
|
-
const excludeBox =
|
|
54
|
+
const excludeBox = (box) => shouldExclude(box)
|
|
55
|
+
|| (isInstanceOf(box, TrackBox) && !trackBoxSet.has(box))
|
|
60
56
|
|| (UnionBoxTypes.isRegionBox(box) && !regionBoxSet.has(box));
|
|
61
57
|
const dependencies = audioUnitBoxes
|
|
62
|
-
.flatMap(box => Array.from(box.graph.dependenciesOf(box, {
|
|
63
|
-
|
|
58
|
+
.flatMap(box => Array.from(box.graph.dependenciesOf(box, {
|
|
59
|
+
excludeBox,
|
|
60
|
+
alwaysFollowMandatory: true,
|
|
61
|
+
stopAtResources: true
|
|
62
|
+
}).boxes));
|
|
64
63
|
const uuidMap = generateTransferMap(audioUnitBoxes, dependencies, rootBox.audioUnits.address.uuid, primaryAudioBus.address.uuid);
|
|
65
64
|
copy(uuidMap, boxGraph, audioUnitBoxes, dependencies);
|
|
66
65
|
reorderAudioUnits(uuidMap, audioUnitBoxes, rootBox);
|
|
67
|
-
// reorder track indices
|
|
68
66
|
audioUnitBoxSet.forEach((_, trackBoxes) => [...trackBoxes]
|
|
69
67
|
.sort(compareIndex)
|
|
70
68
|
.forEach((source, index) => {
|
|
@@ -73,14 +71,13 @@ export var ProjectUtils;
|
|
|
73
71
|
.unwrap("Target Track has not been copied");
|
|
74
72
|
asInstanceOf(box, TrackBox).index.setValue(index);
|
|
75
73
|
}));
|
|
76
|
-
// move new regions to the target position
|
|
77
74
|
const minPosition = regionBoxes.reduce((min, region) => Math.min(min, region.position.getValue()), Number.MAX_VALUE);
|
|
78
75
|
const delta = insertPosition - minPosition;
|
|
79
76
|
regionBoxes.forEach((source) => {
|
|
80
77
|
const box = boxGraph
|
|
81
78
|
.findBox(uuidMap.get(source.address.uuid).target)
|
|
82
79
|
.unwrap("Target Track has not been copied");
|
|
83
|
-
const position = UnionBoxTypes.asRegionBox(box)
|
|
80
|
+
const { position } = UnionBoxTypes.asRegionBox(box);
|
|
84
81
|
position.setValue(position.getValue() + delta);
|
|
85
82
|
});
|
|
86
83
|
};
|
|
@@ -104,25 +101,30 @@ export var ProjectUtils;
|
|
|
104
101
|
target: UUID.generate()
|
|
105
102
|
})),
|
|
106
103
|
...dependencies
|
|
107
|
-
.map(
|
|
108
|
-
source: uuid,
|
|
109
|
-
target:
|
|
110
|
-
? uuid
|
|
111
|
-
: UUID.generate()
|
|
104
|
+
.map(box => ({
|
|
105
|
+
source: box.address.uuid,
|
|
106
|
+
target: box.resource === "external" ? box.address.uuid : UUID.generate()
|
|
112
107
|
}))
|
|
113
108
|
]);
|
|
114
109
|
return uuidMap;
|
|
115
110
|
};
|
|
116
111
|
const copy = (uuidMap, boxGraph, audioUnitBoxes, dependencies) => {
|
|
117
|
-
|
|
118
|
-
const existingFileBoxUUIDs = UUID.newSet(uuid => uuid);
|
|
112
|
+
const existingExternalResourceUUIDs = UUID.newSet(uuid => uuid);
|
|
119
113
|
dependencies.forEach((source) => {
|
|
120
|
-
if (source
|
|
121
|
-
|
|
122
|
-
existingFileBoxUUIDs.add(source.address.uuid);
|
|
123
|
-
}
|
|
114
|
+
if (source.resource === "external" && boxGraph.findBox(source.address.uuid).nonEmpty()) {
|
|
115
|
+
existingExternalResourceUUIDs.add(source.address.uuid);
|
|
124
116
|
}
|
|
125
117
|
});
|
|
118
|
+
const isOwnedByExistingExternalResource = (box) => {
|
|
119
|
+
for (const [pointer, targetAddress] of box.outgoingEdges()) {
|
|
120
|
+
if (pointer.mandatory && !targetAddress.isBox()) {
|
|
121
|
+
if (existingExternalResourceUUIDs.hasKey(targetAddress.uuid)) {
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return false;
|
|
127
|
+
};
|
|
126
128
|
PointerField.decodeWith({
|
|
127
129
|
map: (_pointer, newAddress) => newAddress.map(address => uuidMap.opt(address.uuid).match({
|
|
128
130
|
none: () => address,
|
|
@@ -138,18 +140,11 @@ export var ProjectUtils;
|
|
|
138
140
|
});
|
|
139
141
|
dependencies
|
|
140
142
|
.forEach((source) => {
|
|
141
|
-
if (source
|
|
142
|
-
|
|
143
|
-
if (existingFileBoxUUIDs.opt(source.address.uuid).nonEmpty()) {
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
143
|
+
if (existingExternalResourceUUIDs.hasKey(source.address.uuid)) {
|
|
144
|
+
return;
|
|
146
145
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const ownerUUID = source.owner.targetAddress.unwrap().uuid;
|
|
150
|
-
if (existingFileBoxUUIDs.opt(ownerUUID).nonEmpty()) {
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
146
|
+
if (isOwnedByExistingExternalResource(source)) {
|
|
147
|
+
return;
|
|
153
148
|
}
|
|
154
149
|
const input = new ByteArrayInput(source.toArrayBuffer());
|
|
155
150
|
const key = source.name;
|
|
@@ -14,8 +14,8 @@ export declare class TrackBoxAdapter implements BoxAdapter {
|
|
|
14
14
|
constructor(context: BoxAdaptersContext, box: TrackBox);
|
|
15
15
|
catchupAndSubscribePath(observer: Observer<Option<[string, string]>>): Subscription;
|
|
16
16
|
get context(): BoxAdaptersContext;
|
|
17
|
-
set
|
|
18
|
-
get
|
|
17
|
+
set targetName(value: string);
|
|
18
|
+
get targetName(): Option<string>;
|
|
19
19
|
terminate(): void;
|
|
20
20
|
get audioUnit(): AudioUnitBox;
|
|
21
21
|
get target(): PointerField<Pointers.Automation>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/TrackBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAEH,QAAQ,EACR,MAAM,EAEN,YAAY,EAGZ,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAc,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,IAAI,EAAkB,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,sBAAsB,CAAA;AAG3E,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,qBAAa,eAAgB,YAAW,UAAU;;gBAWlC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ;IAUtD,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY;IAuBnF,IAAI,OAAO,IAAI,kBAAkB,CAAuB;IAExD,IAAI,
|
|
1
|
+
{"version":3,"file":"TrackBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/TrackBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAEH,QAAQ,EACR,MAAM,EAEN,YAAY,EAGZ,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAc,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,IAAI,EAAkB,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,sBAAsB,CAAA;AAG3E,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,qBAAa,eAAgB,YAAW,UAAU;;gBAWlC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ;IAUtD,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY;IAuBnF,IAAI,OAAO,IAAI,kBAAkB,CAAuB;IAExD,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAc3B;IAED,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,CAgB/B;IAuDD,SAAS;IAET,IAAI,SAAS,IAAI,YAAY,CAAgF;IAC7G,IAAI,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAA0B;IACzE,IAAI,KAAK,IAAI,UAAU,CAAqB;IAC5C,IAAI,OAAO,IAAI,YAAY,CAAuB;IAClD,IAAI,OAAO,IAAI,YAAY,CAA2B;IACtD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,IAAI,IAAI,SAAS,CAAmC;IACxD,IAAI,GAAG,IAAI,QAAQ,CAAmB;IACtC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IAEjD,IAAI,SAAS,IAAI,GAAG,CAAoC;IACxD,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAmC;IAE3D,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,OAAO;IAiBlE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS;CAgC1D"}
|
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _TrackBoxAdapter_instances, _TrackBoxAdapter_context, _TrackBoxAdapter_box, _TrackBoxAdapter_terminator, _TrackBoxAdapter_clips, _TrackBoxAdapter_regions, _TrackBoxAdapter_listIndex,
|
|
12
|
+
var _TrackBoxAdapter_instances, _TrackBoxAdapter_context, _TrackBoxAdapter_box, _TrackBoxAdapter_terminator, _TrackBoxAdapter_clips, _TrackBoxAdapter_regions, _TrackBoxAdapter_listIndex, _TrackBoxAdapter_catchupAndSubscribeTargetName, _TrackBoxAdapter_catchupAndSubscribeTargetControlName;
|
|
13
13
|
import { asInstanceOf, DefaultObservableValue, isInstanceOf, Option, panic, Terminable, Terminator } from "@opendaw/lib-std";
|
|
14
14
|
import { StringField } from "@opendaw/lib-box";
|
|
15
15
|
import { UpdateClockRate } from "@opendaw/lib-dsp";
|
|
@@ -46,7 +46,7 @@ export class TrackBoxAdapter {
|
|
|
46
46
|
observer(Option.None);
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
return Terminable.many(__classPrivateFieldGet(this, _TrackBoxAdapter_instances, "m",
|
|
49
|
+
return Terminable.many(__classPrivateFieldGet(this, _TrackBoxAdapter_instances, "m", _TrackBoxAdapter_catchupAndSubscribeTargetName).call(this, option => {
|
|
50
50
|
if (path[0].equals(option)) {
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
@@ -61,31 +61,36 @@ export class TrackBoxAdapter {
|
|
|
61
61
|
}));
|
|
62
62
|
}
|
|
63
63
|
get context() { return __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f"); }
|
|
64
|
-
set
|
|
64
|
+
set targetName(value) {
|
|
65
65
|
__classPrivateFieldGet(this, _TrackBoxAdapter_box, "f").target.targetVertex.ifSome(targetVertex => {
|
|
66
|
-
const
|
|
67
|
-
if (
|
|
68
|
-
const adapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.adapterFor(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
else if ("label" in vertex && vertex.label instanceof StringField) {
|
|
72
|
-
return vertex.label.setValue(value);
|
|
66
|
+
const box = targetVertex.box;
|
|
67
|
+
if (box instanceof AudioUnitBox) {
|
|
68
|
+
const adapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.adapterFor(box, AudioUnitBoxAdapter);
|
|
69
|
+
adapter.input.adapter().ifSome(input => input.labelField.setValue(value));
|
|
70
|
+
return;
|
|
73
71
|
}
|
|
72
|
+
__classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.optAdapter(box).ifSome(adapter => {
|
|
73
|
+
if ("labelField" in adapter && adapter.labelField instanceof StringField) {
|
|
74
|
+
adapter.labelField.setValue(value);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
74
77
|
});
|
|
75
78
|
}
|
|
76
|
-
get
|
|
79
|
+
get targetName() {
|
|
77
80
|
return __classPrivateFieldGet(this, _TrackBoxAdapter_box, "f").target.targetVertex.flatMap(targetVertex => {
|
|
78
|
-
const
|
|
79
|
-
if (
|
|
80
|
-
const adapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.adapterFor(
|
|
81
|
+
const box = targetVertex.box;
|
|
82
|
+
if (box instanceof AudioUnitBox) {
|
|
83
|
+
const adapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.adapterFor(box, AudioUnitBoxAdapter);
|
|
81
84
|
return adapter.input.label;
|
|
82
85
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
const optAdapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.optAdapter(box);
|
|
87
|
+
if (optAdapter.nonEmpty()) {
|
|
88
|
+
const adapter = optAdapter.unwrap();
|
|
89
|
+
if ("labelField" in adapter && adapter.labelField instanceof StringField) {
|
|
90
|
+
return Option.wrap(adapter.labelField.getValue());
|
|
91
|
+
}
|
|
88
92
|
}
|
|
93
|
+
return Option.wrap(box.name);
|
|
89
94
|
});
|
|
90
95
|
}
|
|
91
96
|
terminate() { __classPrivateFieldGet(this, _TrackBoxAdapter_terminator, "f").terminate(); }
|
|
@@ -154,22 +159,23 @@ export class TrackBoxAdapter {
|
|
|
154
159
|
return value;
|
|
155
160
|
}
|
|
156
161
|
}
|
|
157
|
-
_TrackBoxAdapter_context = new WeakMap(), _TrackBoxAdapter_box = new WeakMap(), _TrackBoxAdapter_terminator = new WeakMap(), _TrackBoxAdapter_clips = new WeakMap(), _TrackBoxAdapter_regions = new WeakMap(), _TrackBoxAdapter_listIndex = new WeakMap(), _TrackBoxAdapter_instances = new WeakSet(),
|
|
162
|
+
_TrackBoxAdapter_context = new WeakMap(), _TrackBoxAdapter_box = new WeakMap(), _TrackBoxAdapter_terminator = new WeakMap(), _TrackBoxAdapter_clips = new WeakMap(), _TrackBoxAdapter_regions = new WeakMap(), _TrackBoxAdapter_listIndex = new WeakMap(), _TrackBoxAdapter_instances = new WeakSet(), _TrackBoxAdapter_catchupAndSubscribeTargetName = function _TrackBoxAdapter_catchupAndSubscribeTargetName(observer) {
|
|
158
163
|
const targetVertex = __classPrivateFieldGet(this, _TrackBoxAdapter_box, "f").target.targetVertex;
|
|
159
164
|
if (targetVertex.nonEmpty()) {
|
|
160
|
-
const
|
|
161
|
-
if (
|
|
162
|
-
const adapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.adapterFor(
|
|
165
|
+
const box = targetVertex.unwrap().box;
|
|
166
|
+
if (box instanceof AudioUnitBox) {
|
|
167
|
+
const adapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.adapterFor(box, AudioUnitBoxAdapter);
|
|
163
168
|
return adapter.input.catchupAndSubscribeLabelChange(option => observer(option));
|
|
164
169
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
return Terminable.Empty;
|
|
170
|
+
const optAdapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.optAdapter(box);
|
|
171
|
+
if (optAdapter.nonEmpty()) {
|
|
172
|
+
const adapter = optAdapter.unwrap();
|
|
173
|
+
if ("labelField" in adapter && adapter.labelField instanceof StringField) {
|
|
174
|
+
return adapter.labelField.catchupAndSubscribe(owner => observer(Option.wrap(owner.getValue())));
|
|
175
|
+
}
|
|
172
176
|
}
|
|
177
|
+
observer(Option.wrap(box.name));
|
|
178
|
+
return Terminable.Empty;
|
|
173
179
|
}
|
|
174
180
|
observer(Option.None);
|
|
175
181
|
return Terminable.Empty;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectableValueEvent.d.ts","sourceRoot":"","sources":["../../../src/timeline/event/SelectableValueEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAE3C,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -14,6 +14,7 @@ import { AudioPlayMode } from "../../audio/AudioPlayMode";
|
|
|
14
14
|
import { AudioPitchStretchBoxAdapter } from "../../audio/AudioPitchStretchBoxAdapter";
|
|
15
15
|
import { AudioTimeStretchBoxAdapter } from "../../audio/AudioTimeStretchBoxAdapter";
|
|
16
16
|
import { WarpMarkerBoxAdapter } from "../../audio/WarpMarkerBoxAdapter";
|
|
17
|
+
import { FadingAdapter } from "./FadingAdapter";
|
|
17
18
|
type CopyToParams = {
|
|
18
19
|
track?: Field<Pointers.RegionCollection>;
|
|
19
20
|
position?: ppqn;
|
|
@@ -46,6 +47,7 @@ export declare class AudioRegionBoxAdapter implements AudioContentBoxAdapter, Lo
|
|
|
46
47
|
get mute(): boolean;
|
|
47
48
|
get hue(): int;
|
|
48
49
|
get gain(): MutableObservableValue<number>;
|
|
50
|
+
get fading(): FadingAdapter;
|
|
49
51
|
get file(): AudioFileBoxAdapter;
|
|
50
52
|
get observableOptPlayMode(): ObservableOption<AudioPlayMode>;
|
|
51
53
|
get timeBase(): TimeBase;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioRegionBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/region/AudioRegionBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,GAAG,EAEH,KAAK,EAGL,sBAAsB,EAEtB,gBAAgB,EAChB,QAAQ,EACR,MAAM,EAEN,YAAY,EAGZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAoB,MAAM,kBAAkB,CAAA;AACnF,OAAO,EAAC,OAAO,EAAE,KAAK,EAAoC,MAAM,kBAAkB,CAAA;AAClF,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAC,wBAAwB,EAAE,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,qBAAqB,CAAA;AACvG,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAC,8BAA8B,EAAC,MAAM,8CAA8C,CAAA;AAC3F,OAAO,EAAC,sBAAsB,EAAC,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAC,2BAA2B,EAAC,MAAM,yCAAyC,CAAA;AACnF,OAAO,EAAC,0BAA0B,EAAC,MAAM,wCAAwC,CAAA;AACjF,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"AudioRegionBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/region/AudioRegionBoxAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _AudioRegionBoxAdapter_instances, _AudioRegionBoxAdapter_terminator, _AudioRegionBoxAdapter_context, _AudioRegionBoxAdapter_box, _AudioRegionBoxAdapter_durationConverter, _AudioRegionBoxAdapter_loopDurationConverter, _AudioRegionBoxAdapter_playMode, _AudioRegionBoxAdapter_changeNotifier, _AudioRegionBoxAdapter_constructing, _AudioRegionBoxAdapter_fileAdapter, _AudioRegionBoxAdapter_fileSubscription, _AudioRegionBoxAdapter_playModeSubscription, _AudioRegionBoxAdapter_tempoSubscription, _AudioRegionBoxAdapter_eventCollectionSubscription, _AudioRegionBoxAdapter_isSelected, _AudioRegionBoxAdapter_dispatchChange;
|
|
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
13
|
import { 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";
|
|
@@ -20,6 +20,7 @@ import { ValueEventCollectionBoxAdapter } from "../collection/ValueEventCollecti
|
|
|
20
20
|
import { AudioPlayMode } from "../../audio/AudioPlayMode";
|
|
21
21
|
import { AudioPitchStretchBoxAdapter } from "../../audio/AudioPitchStretchBoxAdapter";
|
|
22
22
|
import { AudioTimeStretchBoxAdapter } from "../../audio/AudioTimeStretchBoxAdapter";
|
|
23
|
+
import { FadingAdapter } from "./FadingAdapter";
|
|
23
24
|
export class AudioRegionBoxAdapter {
|
|
24
25
|
constructor(context, box) {
|
|
25
26
|
_AudioRegionBoxAdapter_instances.add(this);
|
|
@@ -31,6 +32,7 @@ export class AudioRegionBoxAdapter {
|
|
|
31
32
|
_AudioRegionBoxAdapter_loopDurationConverter.set(this, void 0);
|
|
32
33
|
_AudioRegionBoxAdapter_playMode.set(this, void 0);
|
|
33
34
|
_AudioRegionBoxAdapter_changeNotifier.set(this, void 0);
|
|
35
|
+
_AudioRegionBoxAdapter_fadingAdapter.set(this, void 0);
|
|
34
36
|
_AudioRegionBoxAdapter_constructing.set(this, void 0);
|
|
35
37
|
_AudioRegionBoxAdapter_fileAdapter.set(this, Option.None);
|
|
36
38
|
_AudioRegionBoxAdapter_fileSubscription.set(this, Terminable.Empty);
|
|
@@ -46,6 +48,7 @@ export class AudioRegionBoxAdapter {
|
|
|
46
48
|
__classPrivateFieldSet(this, _AudioRegionBoxAdapter_loopDurationConverter, TimeBaseConverter.aware(context.tempoMap, timeBase, loopDuration), "f");
|
|
47
49
|
__classPrivateFieldSet(this, _AudioRegionBoxAdapter_playMode, new MutableObservableOption(), "f");
|
|
48
50
|
__classPrivateFieldSet(this, _AudioRegionBoxAdapter_changeNotifier, new Notifier(), "f");
|
|
51
|
+
__classPrivateFieldSet(this, _AudioRegionBoxAdapter_fadingAdapter, new FadingAdapter(box.fading), "f");
|
|
49
52
|
__classPrivateFieldSet(this, _AudioRegionBoxAdapter_isSelected, false, "f");
|
|
50
53
|
__classPrivateFieldSet(this, _AudioRegionBoxAdapter_constructing, true, "f");
|
|
51
54
|
__classPrivateFieldGet(this, _AudioRegionBoxAdapter_terminator, "f").ownAll(__classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").pointerHub.subscribe({
|
|
@@ -124,6 +127,7 @@ export class AudioRegionBoxAdapter {
|
|
|
124
127
|
get mute() { return __classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").mute.getValue(); }
|
|
125
128
|
get hue() { return __classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").hue.getValue(); }
|
|
126
129
|
get gain() { return __classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").gain; }
|
|
130
|
+
get fading() { return __classPrivateFieldGet(this, _AudioRegionBoxAdapter_fadingAdapter, "f"); }
|
|
127
131
|
get file() { return __classPrivateFieldGet(this, _AudioRegionBoxAdapter_fileAdapter, "f").unwrap("Cannot access file."); }
|
|
128
132
|
get observableOptPlayMode() { return __classPrivateFieldGet(this, _AudioRegionBoxAdapter_playMode, "f"); }
|
|
129
133
|
get timeBase() { return asEnumValue(__classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").timeBase.getValue(), TimeBase); }
|
|
@@ -164,7 +168,15 @@ export class AudioRegionBoxAdapter {
|
|
|
164
168
|
.map(vertex => __classPrivateFieldGet(this, _AudioRegionBoxAdapter_context, "f").boxAdapters.adapterFor(vertex.box, ValueEventCollectionBoxAdapter));
|
|
165
169
|
}
|
|
166
170
|
set position(value) { __classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").position.setValue(value); }
|
|
167
|
-
set duration(value) {
|
|
171
|
+
set duration(value) {
|
|
172
|
+
__classPrivateFieldGet(this, _AudioRegionBoxAdapter_durationConverter, "f").fromPPQN(value, this.position);
|
|
173
|
+
const totalFading = __classPrivateFieldGet(this, _AudioRegionBoxAdapter_fadingAdapter, "f").in + __classPrivateFieldGet(this, _AudioRegionBoxAdapter_fadingAdapter, "f").out;
|
|
174
|
+
if (totalFading > value) {
|
|
175
|
+
const scale = value / totalFading;
|
|
176
|
+
__classPrivateFieldGet(this, _AudioRegionBoxAdapter_fadingAdapter, "f").inField.setValue(__classPrivateFieldGet(this, _AudioRegionBoxAdapter_fadingAdapter, "f").in * scale);
|
|
177
|
+
__classPrivateFieldGet(this, _AudioRegionBoxAdapter_fadingAdapter, "f").outField.setValue(__classPrivateFieldGet(this, _AudioRegionBoxAdapter_fadingAdapter, "f").out * scale);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
168
180
|
set loopOffset(value) { __classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").loopOffset.setValue(mod(value, this.loopDuration)); }
|
|
169
181
|
set loopDuration(value) { __classPrivateFieldGet(this, _AudioRegionBoxAdapter_loopDurationConverter, "f").fromPPQN(value, this.position); }
|
|
170
182
|
moveContentStart(delta) {
|
|
@@ -202,6 +214,7 @@ export class AudioRegionBoxAdapter {
|
|
|
202
214
|
box.gain.setValue(this.gain.getValue());
|
|
203
215
|
box.waveformOffset.setValue(this.waveformOffset.getValue());
|
|
204
216
|
clonedPlayMode.ifSome(mode => box.playMode.refer(mode));
|
|
217
|
+
__classPrivateFieldGet(this, _AudioRegionBoxAdapter_fadingAdapter, "f").copyTo(box.fading);
|
|
205
218
|
}), AudioRegionBoxAdapter);
|
|
206
219
|
adapter.loopDuration = params?.loopDuration ?? this.resolveLoopDuration(adapter.position);
|
|
207
220
|
adapter.loopOffset = params?.loopOffset ?? this.loopOffset;
|
|
@@ -229,7 +242,7 @@ export class AudioRegionBoxAdapter {
|
|
|
229
242
|
}
|
|
230
243
|
toString() { return `{AudioRegionBoxAdapter ${UUID.toString(__classPrivateFieldGet(this, _AudioRegionBoxAdapter_box, "f").address.uuid)}}`; }
|
|
231
244
|
}
|
|
232
|
-
_AudioRegionBoxAdapter_terminator = new WeakMap(), _AudioRegionBoxAdapter_context = new WeakMap(), _AudioRegionBoxAdapter_box = new WeakMap(), _AudioRegionBoxAdapter_durationConverter = new WeakMap(), _AudioRegionBoxAdapter_loopDurationConverter = new WeakMap(), _AudioRegionBoxAdapter_playMode = new WeakMap(), _AudioRegionBoxAdapter_changeNotifier = new WeakMap(), _AudioRegionBoxAdapter_constructing = new WeakMap(), _AudioRegionBoxAdapter_fileAdapter = new WeakMap(), _AudioRegionBoxAdapter_fileSubscription = new WeakMap(), _AudioRegionBoxAdapter_playModeSubscription = new WeakMap(), _AudioRegionBoxAdapter_tempoSubscription = new WeakMap(), _AudioRegionBoxAdapter_eventCollectionSubscription = new WeakMap(), _AudioRegionBoxAdapter_isSelected = new WeakMap(), _AudioRegionBoxAdapter_instances = new WeakSet(), _AudioRegionBoxAdapter_dispatchChange = function _AudioRegionBoxAdapter_dispatchChange() {
|
|
245
|
+
_AudioRegionBoxAdapter_terminator = new WeakMap(), _AudioRegionBoxAdapter_context = new WeakMap(), _AudioRegionBoxAdapter_box = new WeakMap(), _AudioRegionBoxAdapter_durationConverter = new WeakMap(), _AudioRegionBoxAdapter_loopDurationConverter = new WeakMap(), _AudioRegionBoxAdapter_playMode = new WeakMap(), _AudioRegionBoxAdapter_changeNotifier = new WeakMap(), _AudioRegionBoxAdapter_fadingAdapter = new WeakMap(), _AudioRegionBoxAdapter_constructing = new WeakMap(), _AudioRegionBoxAdapter_fileAdapter = new WeakMap(), _AudioRegionBoxAdapter_fileSubscription = new WeakMap(), _AudioRegionBoxAdapter_playModeSubscription = new WeakMap(), _AudioRegionBoxAdapter_tempoSubscription = new WeakMap(), _AudioRegionBoxAdapter_eventCollectionSubscription = new WeakMap(), _AudioRegionBoxAdapter_isSelected = new WeakMap(), _AudioRegionBoxAdapter_instances = new WeakSet(), _AudioRegionBoxAdapter_dispatchChange = function _AudioRegionBoxAdapter_dispatchChange() {
|
|
233
246
|
if (__classPrivateFieldGet(this, _AudioRegionBoxAdapter_constructing, "f")) {
|
|
234
247
|
return;
|
|
235
248
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Fading } from "@opendaw/studio-boxes";
|
|
2
|
+
import { FadingEnvelope, ppqn } from "@opendaw/lib-dsp";
|
|
3
|
+
import { MutableObservableValue, unitValue } from "@opendaw/lib-std";
|
|
4
|
+
export declare class FadingAdapter implements FadingEnvelope.Config {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(fading: Fading);
|
|
7
|
+
get inField(): MutableObservableValue<number>;
|
|
8
|
+
get outField(): MutableObservableValue<number>;
|
|
9
|
+
get inSlopeField(): MutableObservableValue<number>;
|
|
10
|
+
get outSlopeField(): MutableObservableValue<number>;
|
|
11
|
+
get in(): ppqn;
|
|
12
|
+
get out(): ppqn;
|
|
13
|
+
get inSlope(): unitValue;
|
|
14
|
+
get outSlope(): unitValue;
|
|
15
|
+
get hasFading(): boolean;
|
|
16
|
+
copyTo(target: Fading): void;
|
|
17
|
+
reset(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=FadingAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FadingAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/region/FadingAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAC,cAAc,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,sBAAsB,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAElE,qBAAa,aAAc,YAAW,cAAc,CAAC,MAAM;;gBAE3C,MAAM,EAAE,MAAM;IAC1B,IAAI,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAyB;IACtE,IAAI,QAAQ,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAA0B;IACxE,IAAI,YAAY,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAA8B;IAChF,IAAI,aAAa,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAA+B;IAClF,IAAI,EAAE,IAAI,IAAI,CAAoC;IAClD,IAAI,GAAG,IAAI,IAAI,CAAqC;IACpD,IAAI,OAAO,IAAI,SAAS,CAAyC;IACjE,IAAI,QAAQ,IAAI,SAAS,CAA0C;IACnE,IAAI,SAAS,IAAI,OAAO,CAAwC;IAChE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B,KAAK,IAAI,IAAI;CAMhB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
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 _FadingAdapter_fading;
|
|
13
|
+
import { FadingEnvelope } from "@opendaw/lib-dsp";
|
|
14
|
+
export class FadingAdapter {
|
|
15
|
+
constructor(fading) {
|
|
16
|
+
_FadingAdapter_fading.set(this, void 0);
|
|
17
|
+
__classPrivateFieldSet(this, _FadingAdapter_fading, fading, "f");
|
|
18
|
+
}
|
|
19
|
+
get inField() { return __classPrivateFieldGet(this, _FadingAdapter_fading, "f").in; }
|
|
20
|
+
get outField() { return __classPrivateFieldGet(this, _FadingAdapter_fading, "f").out; }
|
|
21
|
+
get inSlopeField() { return __classPrivateFieldGet(this, _FadingAdapter_fading, "f").inSlope; }
|
|
22
|
+
get outSlopeField() { return __classPrivateFieldGet(this, _FadingAdapter_fading, "f").outSlope; }
|
|
23
|
+
get in() { return __classPrivateFieldGet(this, _FadingAdapter_fading, "f").in.getValue(); }
|
|
24
|
+
get out() { return __classPrivateFieldGet(this, _FadingAdapter_fading, "f").out.getValue(); }
|
|
25
|
+
get inSlope() { return __classPrivateFieldGet(this, _FadingAdapter_fading, "f").inSlope.getValue(); }
|
|
26
|
+
get outSlope() { return __classPrivateFieldGet(this, _FadingAdapter_fading, "f").outSlope.getValue(); }
|
|
27
|
+
get hasFading() { return FadingEnvelope.hasFading(this); }
|
|
28
|
+
copyTo(target) {
|
|
29
|
+
target.in.setValue(this.in);
|
|
30
|
+
target.out.setValue(this.out);
|
|
31
|
+
target.inSlope.setValue(this.inSlope);
|
|
32
|
+
target.outSlope.setValue(this.outSlope);
|
|
33
|
+
}
|
|
34
|
+
reset() {
|
|
35
|
+
__classPrivateFieldGet(this, _FadingAdapter_fading, "f").in.setValue(0.0);
|
|
36
|
+
__classPrivateFieldGet(this, _FadingAdapter_fading, "f").out.setValue(0.0);
|
|
37
|
+
__classPrivateFieldGet(this, _FadingAdapter_fading, "f").inSlope.setValue(0.75);
|
|
38
|
+
__classPrivateFieldGet(this, _FadingAdapter_fading, "f").outSlope.setValue(0.25);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
_FadingAdapter_fading = new WeakMap();
|
package/package.json
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
2
|
+
"name": "@opendaw/studio-adapters",
|
|
3
|
+
"version": "0.0.80",
|
|
4
|
+
"license": "LGPL-3.0-or-later",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist/**/*"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"generate-exports": "node generate-exports.mjs",
|
|
21
|
+
"build": "npm run generate-exports && tsc",
|
|
22
|
+
"lint": "eslint \"**/*.ts\"",
|
|
23
|
+
"test": "echo \"No tests to run\""
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@opendaw/lib-box": "^0.0.70",
|
|
27
|
+
"@opendaw/lib-dsp": "^0.0.69",
|
|
28
|
+
"@opendaw/lib-fusion": "^0.0.75",
|
|
29
|
+
"@opendaw/lib-runtime": "^0.0.67",
|
|
30
|
+
"@opendaw/lib-std": "^0.0.66",
|
|
31
|
+
"@opendaw/studio-boxes": "^0.0.72",
|
|
32
|
+
"@opendaw/studio-enums": "^0.0.61",
|
|
33
|
+
"soundfont2": "^0.5.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@opendaw/eslint-config": "^0.0.27",
|
|
37
|
+
"@opendaw/typescript-config": "^0.0.28"
|
|
38
|
+
},
|
|
39
|
+
"gitHead": "a23a423a60a8b0cebfb973224ffb6eddd6fb6943"
|
|
40
40
|
}
|