@opendaw/studio-adapters 0.3.1 → 0.3.3
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/LICENSE +661 -0
- package/dist/AutomatableParameterFieldAdapter.d.ts +9 -5
- package/dist/AutomatableParameterFieldAdapter.d.ts.map +1 -1
- package/dist/AutomatableParameterFieldAdapter.js +61 -40
- package/dist/BoxAdapters.d.ts.map +1 -1
- package/dist/BoxAdapters.js +12 -0
- package/dist/DeviceManualUrls.d.ts +1 -0
- package/dist/DeviceManualUrls.d.ts.map +1 -1
- package/dist/DeviceManualUrls.js +1 -0
- package/dist/ParameterFieldAdapters.d.ts +3 -7
- package/dist/ParameterFieldAdapters.d.ts.map +1 -1
- package/dist/ParameterFieldAdapters.js +2 -15
- package/dist/ParameterOwner.d.ts.map +1 -1
- package/dist/ParameterOwner.js +4 -0
- package/dist/RecordingProcessorOptions.d.ts +4 -0
- package/dist/RecordingProcessorOptions.d.ts.map +1 -1
- package/dist/RecordingProcessorOptions.js +1 -1
- package/dist/RootBoxAdapter.d.ts +2 -0
- package/dist/RootBoxAdapter.d.ts.map +1 -1
- package/dist/RootBoxAdapter.js +8 -2
- package/dist/audio-unit/AudioUnitTracks.d.ts +2 -15
- package/dist/audio-unit/AudioUnitTracks.d.ts.map +1 -1
- package/dist/audio-unit/AudioUnitTracks.js +5 -59
- package/dist/devices/audio-effects/ConvolverDeviceBoxAdapter.d.ts +35 -0
- package/dist/devices/audio-effects/ConvolverDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/audio-effects/ConvolverDeviceBoxAdapter.js +60 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/modulation/Modulators.d.ts.map +1 -1
- package/dist/modulation/Modulators.js +11 -2
- package/dist/modulation/RandomModulatorBoxAdapter.d.ts +0 -2
- package/dist/modulation/RandomModulatorBoxAdapter.d.ts.map +1 -1
- package/dist/modulation/RandomModulatorBoxAdapter.js +4 -6
- package/dist/modulation/StepsModulatorBoxAdapter.d.ts +0 -2
- package/dist/modulation/StepsModulatorBoxAdapter.d.ts.map +1 -1
- package/dist/modulation/StepsModulatorBoxAdapter.js +2 -3
- package/dist/preset/PresetDecoder.d.ts.map +1 -1
- package/dist/preset/PresetDecoder.js +27 -31
- package/dist/preset/PresetEncoder.d.ts.map +1 -1
- package/dist/preset/PresetEncoder.js +8 -5
- package/dist/protocols.d.ts +4 -1
- package/dist/protocols.d.ts.map +1 -1
- package/dist/timeline/TrackBoxAdapter.d.ts +1 -0
- package/dist/timeline/TrackBoxAdapter.d.ts.map +1 -1
- package/dist/timeline/TrackBoxAdapter.js +21 -27
- package/dist/transfer/TransferAudioUnits.js +2 -2
- package/dist/transfer/TransferUtils.d.ts +5 -2
- package/dist/transfer/TransferUtils.d.ts.map +1 -1
- package/dist/transfer/TransferUtils.js +41 -5
- package/package.json +11 -11
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ControlSourceListener, ObservableValue, Observer, Option, Parameter, StringMapping, StringResult, Subscription, Terminable, unitValue, ValueMapping } from "@opendaw/lib-std";
|
|
2
2
|
import { ppqn } from "@opendaw/lib-dsp";
|
|
3
|
-
import { Address, PrimitiveField, PrimitiveType, PrimitiveValues } from "@opendaw/lib-box";
|
|
3
|
+
import { Address, Field, PrimitiveField, PrimitiveType, PrimitiveValues } from "@opendaw/lib-box";
|
|
4
4
|
import { Pointers } from "@opendaw/studio-enums";
|
|
5
|
+
import { ModulationBox } from "@opendaw/studio-boxes";
|
|
5
6
|
import { TrackBoxAdapter } from "./timeline/TrackBoxAdapter";
|
|
6
|
-
import {
|
|
7
|
+
import { ParameterTracks } from "./timeline/ParameterTracks";
|
|
7
8
|
import { BoxAdaptersContext } from "./BoxAdaptersContext";
|
|
8
9
|
export declare class AutomatableParameterFieldAdapter<T extends PrimitiveValues = any> implements Parameter<T>, Terminable {
|
|
9
10
|
#private;
|
|
@@ -16,13 +17,16 @@ export declare class AutomatableParameterFieldAdapter<T extends PrimitiveValues
|
|
|
16
17
|
get anchor(): unitValue;
|
|
17
18
|
get type(): PrimitiveType;
|
|
18
19
|
get address(): Address;
|
|
20
|
+
get context(): BoxAdaptersContext;
|
|
19
21
|
get track(): Option<TrackBoxAdapter>;
|
|
22
|
+
get modulationTarget(): Field<Pointers.Modulation>;
|
|
23
|
+
get modulations(): ReadonlyArray<ModulationBox>;
|
|
20
24
|
catchupAndSubscribeName(observer: Observer<string>): Subscription;
|
|
21
|
-
registerTracks(tracks:
|
|
22
|
-
|
|
23
|
-
touchEnd(): void;
|
|
25
|
+
registerTracks(tracks: ParameterTracks): Terminable;
|
|
26
|
+
optTracks(): Option<ParameterTracks>;
|
|
24
27
|
updateMappings(valueMapping: ValueMapping<T>, stringMapping: StringMapping<T>): void;
|
|
25
28
|
valueAt(position: ppqn): T;
|
|
29
|
+
notifyPrinting(): void;
|
|
26
30
|
subscribe(observer: Observer<AutomatableParameterFieldAdapter<T>>): Subscription;
|
|
27
31
|
catchupAndSubscribe(observer: Observer<AutomatableParameterFieldAdapter<T>>): Subscription;
|
|
28
32
|
catchupAndSubscribeControlSources(observer: ControlSourceListener): Subscription;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutomatableParameterFieldAdapter.d.ts","sourceRoot":"","sources":["../src/AutomatableParameterFieldAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AutomatableParameterFieldAdapter.d.ts","sourceRoot":"","sources":["../src/AutomatableParameterFieldAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,qBAAqB,EAKrB,eAAe,EACf,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,EAAE,KAAK,EAA8B,cAAc,EAAE,aAAa,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAA;AAC3H,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAa,aAAa,EAAW,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AAQvD,qBAAa,gCAAgC,CAAC,CAAC,SAAS,eAAe,GAAG,GAAG,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU;;gBAoBlG,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,GAAG,eAAe,CAAC,MAAM,CAAC,EACtC,MAAM,CAAC,EAAE,SAAS,EAClB,UAAU,CAAC,EAAE,CAAC;IAuE1B,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,CAA+B;IACjD,IAAI,MAAM,IAAI,SAAS,CAAsB;IAC7C,IAAI,IAAI,IAAI,aAAa,CAA0B;IACnD,IAAI,OAAO,IAAI,OAAO,CAA6B;IACnD,IAAI,OAAO,IAAI,kBAAkB,CAAuB;IACxD,IAAI,KAAK,IAAI,MAAM,CAAC,eAAe,CAAC,CAA+B;IAGnE,IAAI,gBAAgB,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAEjD;IACD,IAAI,WAAW,IAAI,aAAa,CAAC,aAAa,CAAC,CAG9C;IAED,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,YAAY;IAIjE,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,UAAU;IAMnD,SAAS,IAAI,MAAM,CAAC,eAAe,CAAC;IAMpC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAMpF,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC;IAW1B,cAAc,IAAI,IAAI;IAEtB,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;IAMjB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IACpC,YAAY,IAAI,SAAS;IACzB,kBAAkB,IAAI,CAAC;IAGvB,sBAAsB,IAAI,SAAS;IAInC,uBAAuB,IAAI,QAAQ,CAAC,YAAY,CAAC;IACjD,aAAa,IAAI,QAAQ,CAAC,YAAY,CAAC;IACvC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAYjC,KAAK,IAAI,IAAI;IAEb,SAAS,IAAI,IAAI;CAKpB"}
|
|
@@ -9,10 +9,12 @@ 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 _AutomatableParameterFieldAdapter_context, _AutomatableParameterFieldAdapter_field, _AutomatableParameterFieldAdapter_name, _AutomatableParameterFieldAdapter_anchor, _AutomatableParameterFieldAdapter_resetValue, _AutomatableParameterFieldAdapter_terminator, _AutomatableParameterFieldAdapter_valueChangeNotifier, _AutomatableParameterFieldAdapter_controlSource, _AutomatableParameterFieldAdapter_valueMapping, _AutomatableParameterFieldAdapter_stringMapping, _AutomatableParameterFieldAdapter_trackBoxAdapter, _AutomatableParameterFieldAdapter_automationHandle, _AutomatableParameterFieldAdapter_controlledValue, _AutomatableParameterFieldAdapter_midiControlled;
|
|
13
|
-
import { assert, clamp, isNull, Listeners, Notifier, ObservableValue, Option, panic, Terminator } from "@opendaw/lib-std";
|
|
12
|
+
var _AutomatableParameterFieldAdapter_instances, _AutomatableParameterFieldAdapter_context, _AutomatableParameterFieldAdapter_field, _AutomatableParameterFieldAdapter_name, _AutomatableParameterFieldAdapter_anchor, _AutomatableParameterFieldAdapter_resetValue, _AutomatableParameterFieldAdapter_terminator, _AutomatableParameterFieldAdapter_valueChangeNotifier, _AutomatableParameterFieldAdapter_controlSource, _AutomatableParameterFieldAdapter_valueMapping, _AutomatableParameterFieldAdapter_stringMapping, _AutomatableParameterFieldAdapter_trackBoxAdapter, _AutomatableParameterFieldAdapter_automationHandle, _AutomatableParameterFieldAdapter_controlledValue, _AutomatableParameterFieldAdapter_modulationValue, _AutomatableParameterFieldAdapter_midiControlled, _AutomatableParameterFieldAdapter_observeEngineValue, _AutomatableParameterFieldAdapter_releaseEngineValue;
|
|
13
|
+
import { assert, asInstanceOf, clamp, isNull, Listeners, Notifier, ObservableValue, Option, panic, StringMapping, Terminator } from "@opendaw/lib-std";
|
|
14
14
|
import { Pointers } from "@opendaw/studio-enums";
|
|
15
|
+
import { ModulationBox } from "@opendaw/studio-boxes";
|
|
15
16
|
import { TrackBoxAdapter } from "./timeline/TrackBoxAdapter";
|
|
17
|
+
import { ParameterOwner } from "./ParameterOwner";
|
|
16
18
|
const ExternalControlTypes = [
|
|
17
19
|
Pointers.Automation,
|
|
18
20
|
Pointers.Modulation,
|
|
@@ -21,6 +23,7 @@ const ExternalControlTypes = [
|
|
|
21
23
|
];
|
|
22
24
|
export class AutomatableParameterFieldAdapter {
|
|
23
25
|
constructor(context, field, valueMapping, stringMapping, name, anchor, resetValue) {
|
|
26
|
+
_AutomatableParameterFieldAdapter_instances.add(this);
|
|
24
27
|
_AutomatableParameterFieldAdapter_context.set(this, void 0);
|
|
25
28
|
_AutomatableParameterFieldAdapter_field.set(this, void 0);
|
|
26
29
|
_AutomatableParameterFieldAdapter_name.set(this, void 0);
|
|
@@ -34,6 +37,7 @@ export class AutomatableParameterFieldAdapter {
|
|
|
34
37
|
_AutomatableParameterFieldAdapter_trackBoxAdapter.set(this, Option.None);
|
|
35
38
|
_AutomatableParameterFieldAdapter_automationHandle.set(this, Option.None);
|
|
36
39
|
_AutomatableParameterFieldAdapter_controlledValue.set(this, null);
|
|
40
|
+
_AutomatableParameterFieldAdapter_modulationValue.set(this, null);
|
|
37
41
|
_AutomatableParameterFieldAdapter_midiControlled.set(this, false);
|
|
38
42
|
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_context, context, "f");
|
|
39
43
|
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_field, field, "f");
|
|
@@ -52,33 +56,10 @@ export class AutomatableParameterFieldAdapter {
|
|
|
52
56
|
pointer.box.accept({
|
|
53
57
|
visitTrackBox: (box) => {
|
|
54
58
|
assert(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_trackBoxAdapter, "f").isEmpty(), "Already assigned");
|
|
55
|
-
|
|
56
|
-
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_trackBoxAdapter, Option.wrap(adapter), "f");
|
|
57
|
-
if (__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").isMainThread) {
|
|
58
|
-
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_automationHandle, Option.wrap(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").liveStreamReceiver
|
|
59
|
-
.subscribeFloat(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_field, "f").address, value => {
|
|
60
|
-
// NaN is the engine's "the curve yields NO value here" sentinel: automation
|
|
61
|
-
// is attached but has no region / clip / events yet. The parameter must then
|
|
62
|
-
// keep showing its STORAGE value (`getControlledUnitValue` falls back to
|
|
63
|
-
// `getUnitValue` while `#controlledValue` is null) — a real value of 0 would
|
|
64
|
-
// otherwise read as unit 0, pinning the knob to its minimum.
|
|
65
|
-
if (isNaN(value)) {
|
|
66
|
-
if (isNull(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_controlledValue, "f"))) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_controlledValue, null, "f");
|
|
70
|
-
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueChangeNotifier, "f").notify(this);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
if (__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_controlledValue, "f") === value) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_controlledValue, value, "f");
|
|
77
|
-
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueChangeNotifier, "f").notify(this);
|
|
78
|
-
})), "f");
|
|
79
|
-
}
|
|
59
|
+
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_trackBoxAdapter, Option.wrap(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").boxAdapters.adapterFor(box, TrackBoxAdapter)), "f");
|
|
80
60
|
}
|
|
81
61
|
});
|
|
62
|
+
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_instances, "m", _AutomatableParameterFieldAdapter_observeEngineValue).call(this);
|
|
82
63
|
},
|
|
83
64
|
onRemoved: (pointer) => {
|
|
84
65
|
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_controlSource, "f").proxy.onControlSourceRemove(mapPointerToControlSource(pointer.pointerType));
|
|
@@ -86,14 +67,9 @@ export class AutomatableParameterFieldAdapter {
|
|
|
86
67
|
visitTrackBox: (box) => {
|
|
87
68
|
assert(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_trackBoxAdapter, "f").unwrapOrNull()?.address?.equals(box.address) === true, `Unknown ${box}`);
|
|
88
69
|
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_trackBoxAdapter, Option.None, "f");
|
|
89
|
-
if (__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").isMainThread) {
|
|
90
|
-
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_automationHandle, "f").ifSome(handle => handle.terminate());
|
|
91
|
-
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_automationHandle, Option.None, "f");
|
|
92
|
-
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_controlledValue, null, "f");
|
|
93
|
-
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueChangeNotifier, "f").notify(this);
|
|
94
|
-
}
|
|
95
70
|
}
|
|
96
71
|
});
|
|
72
|
+
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_instances, "m", _AutomatableParameterFieldAdapter_releaseEngineValue).call(this);
|
|
97
73
|
}
|
|
98
74
|
}, ...ExternalControlTypes));
|
|
99
75
|
/*
|
|
@@ -123,18 +99,32 @@ export class AutomatableParameterFieldAdapter {
|
|
|
123
99
|
get anchor() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_anchor, "f"); }
|
|
124
100
|
get type() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_field, "f").type; }
|
|
125
101
|
get address() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_field, "f").address; }
|
|
102
|
+
get context() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f"); }
|
|
126
103
|
get track() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_trackBoxAdapter, "f"); }
|
|
104
|
+
/// Every parameter field accepts `Modulation` (`ParameterPointerRules`), but the adapter types it by the
|
|
105
|
+
/// automation pointer it was built for.
|
|
106
|
+
get modulationTarget() {
|
|
107
|
+
return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_field, "f");
|
|
108
|
+
}
|
|
109
|
+
get modulations() {
|
|
110
|
+
return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_field, "f").pointerHub.filter(Pointers.Modulation)
|
|
111
|
+
.map(pointer => asInstanceOf(pointer.box, ModulationBox));
|
|
112
|
+
}
|
|
127
113
|
catchupAndSubscribeName(observer) {
|
|
128
114
|
return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_name, "f").catchupAndSubscribe(owner => observer(owner.getValue()));
|
|
129
115
|
}
|
|
130
116
|
registerTracks(tracks) {
|
|
131
117
|
return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").parameterFieldAdapters.registerTracks(this.address, tracks);
|
|
132
118
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
119
|
+
/// Where this parameter's automation lanes live. A modulator registers itself as the owner, everything else
|
|
120
|
+
/// falls back to the audio unit the parameter belongs to, so a lane resolves with no editor mounted.
|
|
121
|
+
optTracks() {
|
|
122
|
+
const registered = __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").parameterFieldAdapters.getTracks(this.address);
|
|
123
|
+
if (registered.nonEmpty()) {
|
|
124
|
+
return registered;
|
|
125
|
+
}
|
|
126
|
+
return ParameterOwner.audioUnitOf(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f"), __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_field, "f")).map(adapter => adapter.tracks);
|
|
136
127
|
}
|
|
137
|
-
touchEnd() { __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").parameterFieldAdapters.touchEnd(this.address); }
|
|
138
128
|
updateMappings(valueMapping, stringMapping) {
|
|
139
129
|
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_valueMapping, valueMapping, "f");
|
|
140
130
|
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_stringMapping, stringMapping, "f");
|
|
@@ -150,6 +140,7 @@ export class AutomatableParameterFieldAdapter {
|
|
|
150
140
|
}
|
|
151
141
|
return this.getValue();
|
|
152
142
|
}
|
|
143
|
+
notifyPrinting() { __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueChangeNotifier, "f").notify(this); }
|
|
153
144
|
subscribe(observer) {
|
|
154
145
|
return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueChangeNotifier, "f").subscribe(observer);
|
|
155
146
|
}
|
|
@@ -177,11 +168,17 @@ export class AutomatableParameterFieldAdapter {
|
|
|
177
168
|
setUnitValue(value) { this.setValue(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueMapping, "f").y(value)); }
|
|
178
169
|
getUnitValue() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueMapping, "f").x(this.getValue()); }
|
|
179
170
|
getControlledValue() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueMapping, "f").y(this.getControlledUnitValue()); }
|
|
180
|
-
|
|
171
|
+
// The engine cannot fold these itself: for an unautomated parameter it holds the storage value in the
|
|
172
|
+
// parameter's real unit, and the mapping lives here (and in the device).
|
|
173
|
+
getControlledUnitValue() {
|
|
174
|
+
const base = __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_controlledValue, "f") ?? this.getUnitValue();
|
|
175
|
+
return isNull(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_modulationValue, "f")) ? base : clamp(base + __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_modulationValue, "f"), 0.0, 1.0);
|
|
176
|
+
}
|
|
181
177
|
getControlledPrintValue() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_stringMapping, "f").x(this.getControlledValue()); }
|
|
182
178
|
getPrintValue() { return __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_stringMapping, "f").x(this.getValue()); }
|
|
183
179
|
setPrintValue(text) {
|
|
184
|
-
|
|
180
|
+
// bare numbers mean the unit the label currently displays ("10" while showing "ms" = 10 ms)
|
|
181
|
+
const result = __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_stringMapping, "f").y(StringMapping.withDisplayUnit(text, this.getPrintValue().unit));
|
|
185
182
|
if (result.type === "unitValue") {
|
|
186
183
|
this.setUnitValue(clamp(result.value, 0.0, 1.0));
|
|
187
184
|
}
|
|
@@ -199,7 +196,31 @@ export class AutomatableParameterFieldAdapter {
|
|
|
199
196
|
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_terminator, "f").terminate();
|
|
200
197
|
}
|
|
201
198
|
}
|
|
202
|
-
_AutomatableParameterFieldAdapter_context = new WeakMap(), _AutomatableParameterFieldAdapter_field = new WeakMap(), _AutomatableParameterFieldAdapter_name = new WeakMap(), _AutomatableParameterFieldAdapter_anchor = new WeakMap(), _AutomatableParameterFieldAdapter_resetValue = new WeakMap(), _AutomatableParameterFieldAdapter_terminator = new WeakMap(), _AutomatableParameterFieldAdapter_valueChangeNotifier = new WeakMap(), _AutomatableParameterFieldAdapter_controlSource = new WeakMap(), _AutomatableParameterFieldAdapter_valueMapping = new WeakMap(), _AutomatableParameterFieldAdapter_stringMapping = new WeakMap(), _AutomatableParameterFieldAdapter_trackBoxAdapter = new WeakMap(), _AutomatableParameterFieldAdapter_automationHandle = new WeakMap(), _AutomatableParameterFieldAdapter_controlledValue = new WeakMap(), _AutomatableParameterFieldAdapter_midiControlled = new WeakMap()
|
|
199
|
+
_AutomatableParameterFieldAdapter_context = new WeakMap(), _AutomatableParameterFieldAdapter_field = new WeakMap(), _AutomatableParameterFieldAdapter_name = new WeakMap(), _AutomatableParameterFieldAdapter_anchor = new WeakMap(), _AutomatableParameterFieldAdapter_resetValue = new WeakMap(), _AutomatableParameterFieldAdapter_terminator = new WeakMap(), _AutomatableParameterFieldAdapter_valueChangeNotifier = new WeakMap(), _AutomatableParameterFieldAdapter_controlSource = new WeakMap(), _AutomatableParameterFieldAdapter_valueMapping = new WeakMap(), _AutomatableParameterFieldAdapter_stringMapping = new WeakMap(), _AutomatableParameterFieldAdapter_trackBoxAdapter = new WeakMap(), _AutomatableParameterFieldAdapter_automationHandle = new WeakMap(), _AutomatableParameterFieldAdapter_controlledValue = new WeakMap(), _AutomatableParameterFieldAdapter_modulationValue = new WeakMap(), _AutomatableParameterFieldAdapter_midiControlled = new WeakMap(), _AutomatableParameterFieldAdapter_instances = new WeakSet(), _AutomatableParameterFieldAdapter_observeEngineValue = function _AutomatableParameterFieldAdapter_observeEngineValue() {
|
|
200
|
+
if (!__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").isMainThread || __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_automationHandle, "f").nonEmpty()) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_automationHandle, Option.wrap(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").liveStreamReceiver
|
|
204
|
+
.subscribeFloats(__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_field, "f").address, values => {
|
|
205
|
+
const automated = isNaN(values[0]) ? null : values[0];
|
|
206
|
+
const modulation = isNaN(values[1]) ? null : values[1];
|
|
207
|
+
if (__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_controlledValue, "f") === automated && __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_modulationValue, "f") === modulation) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_controlledValue, automated, "f");
|
|
211
|
+
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_modulationValue, modulation, "f");
|
|
212
|
+
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueChangeNotifier, "f").notify(this);
|
|
213
|
+
})), "f");
|
|
214
|
+
}, _AutomatableParameterFieldAdapter_releaseEngineValue = function _AutomatableParameterFieldAdapter_releaseEngineValue() {
|
|
215
|
+
if (!__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_context, "f").isMainThread || __classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_field, "f").pointerHub.filter(...ExternalControlTypes).length > 0) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_automationHandle, "f").ifSome(handle => handle.terminate());
|
|
219
|
+
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_automationHandle, Option.None, "f");
|
|
220
|
+
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_controlledValue, null, "f");
|
|
221
|
+
__classPrivateFieldSet(this, _AutomatableParameterFieldAdapter_modulationValue, null, "f");
|
|
222
|
+
__classPrivateFieldGet(this, _AutomatableParameterFieldAdapter_valueChangeNotifier, "f").notify(this);
|
|
223
|
+
};
|
|
203
224
|
const mapPointerToControlSource = (pointer) => {
|
|
204
225
|
switch (pointer) {
|
|
205
226
|
case Pointers.Automation:
|
|
@@ -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;AAiI5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAmCvC,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;CAqF3C"}
|
package/dist/BoxAdapters.js
CHANGED
|
@@ -59,6 +59,11 @@ import { FrequencySplitBoxAdapter } from "./devices/audio-effects/FrequencySplit
|
|
|
59
59
|
import { AudioEffectCompositeCellBoxAdapter } from "./devices/audio-effects/AudioEffectComposite/AudioEffectCompositeCellBoxAdapter";
|
|
60
60
|
import { ZeitgeistDeviceBoxAdapter } from "./devices/midi-effects/ZeitgeistDeviceBoxAdapter";
|
|
61
61
|
import { GrooveShuffleBoxAdapter } from "./grooves/GrooveShuffleBoxAdapter";
|
|
62
|
+
import { LfoModulatorBoxAdapter } from "./modulation/LfoModulatorBoxAdapter";
|
|
63
|
+
import { StepsModulatorBoxAdapter } from "./modulation/StepsModulatorBoxAdapter";
|
|
64
|
+
import { MacroModulatorBoxAdapter } from "./modulation/MacroModulatorBoxAdapter";
|
|
65
|
+
import { RandomModulatorBoxAdapter } from "./modulation/RandomModulatorBoxAdapter";
|
|
66
|
+
import { ModulationBoxAdapter } from "./modulation/ModulationBoxAdapter";
|
|
62
67
|
import { UnknownAudioEffectDeviceBoxAdapter } from "./devices/audio-effects/UnknownAudioEffectDeviceBoxAdapter";
|
|
63
68
|
import { UnknownMidiEffectDeviceBoxAdapter } from "./devices/midi-effects/UnknownMidiEffectDeviceBoxAdapter";
|
|
64
69
|
import { SoundfontDeviceBoxAdapter } from "./devices/instruments/SoundfontDeviceBoxAdapter";
|
|
@@ -73,6 +78,7 @@ import { MIDIOutputDeviceBoxAdapter } from "./devices/instruments/MIDIOutputDevi
|
|
|
73
78
|
import { VelocityDeviceBoxAdapter } from "./devices/midi-effects/VelocityDeviceBoxAdapter";
|
|
74
79
|
import { TidalDeviceBoxAdapter } from "./devices/audio-effects/TidalDeviceBoxAdapter";
|
|
75
80
|
import { VocoderDeviceBoxAdapter } from "./devices/audio-effects/VocoderDeviceBoxAdapter";
|
|
81
|
+
import { ConvolverDeviceBoxAdapter } from "./devices/audio-effects/ConvolverDeviceBoxAdapter";
|
|
76
82
|
import { DattorroReverbDeviceBoxAdapter } from "./devices/audio-effects/DattorroReverbDeviceBoxAdapter";
|
|
77
83
|
import { NeuralAmpDeviceBoxAdapter } from "./devices/audio-effects/NeuralAmpDeviceBoxAdapter";
|
|
78
84
|
import { WaveshaperDeviceBoxAdapter } from "./devices/audio-effects/WaveshaperDeviceBoxAdapter";
|
|
@@ -151,12 +157,18 @@ _BoxAdapters_context = new WeakMap(), _BoxAdapters_adapters = new WeakMap(), _Bo
|
|
|
151
157
|
visitGateDeviceBox: (box) => new GateDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
152
158
|
visitAutotuneDeviceBox: (box) => new AutotuneDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
153
159
|
visitCrusherDeviceBox: (box) => new CrusherDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
160
|
+
visitConvolverDeviceBox: (box) => new ConvolverDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
154
161
|
visitDattorroReverbDeviceBox: (box) => new DattorroReverbDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
155
162
|
visitDelayDeviceBox: (box) => new DelayDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
156
163
|
visitDeviceInterfaceKnobBox: (box) => new DeviceInterfaceKnobAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
157
164
|
visitTidalDeviceBox: (box) => new TidalDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
158
165
|
visitFoldDeviceBox: (box) => new FoldDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
159
166
|
visitGrooveShuffleBox: (box) => new GrooveShuffleBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
167
|
+
visitLfoModulatorBox: (box) => new LfoModulatorBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
168
|
+
visitStepsModulatorBox: (box) => new StepsModulatorBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
169
|
+
visitMacroModulatorBox: (box) => new MacroModulatorBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
170
|
+
visitRandomModulatorBox: (box) => new RandomModulatorBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
171
|
+
visitModulationBox: (box) => new ModulationBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
160
172
|
visitMarkerBox: (box) => new MarkerBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
161
173
|
visitSignatureEventBox: (box) => new SignatureEventBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
162
174
|
visitMIDIOutputDeviceBox: (box) => new MIDIOutputDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
@@ -8,6 +8,7 @@ export declare namespace DeviceManualUrls {
|
|
|
8
8
|
const Autotune = "manuals/devices/audio/autotune";
|
|
9
9
|
const StereoTool = "manuals/devices/audio/stereotool";
|
|
10
10
|
const Delay = "manuals/devices/audio/delay";
|
|
11
|
+
const Convolver = "manuals/devices/audio/convolver";
|
|
11
12
|
const DattorroReverb = "manuals/devices/audio/dattorro-reverb";
|
|
12
13
|
const Maximizer = "manuals/devices/audio/maximizer";
|
|
13
14
|
const Compressor = "manuals/devices/audio/compressor";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceManualUrls.d.ts","sourceRoot":"","sources":["../src/DeviceManualUrls.ts"],"names":[],"mappings":"AAAA,yBAAiB,gBAAgB,CAAC;IAEvB,MAAM,QAAQ,sBAAsB,CAAA;IAGpC,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,KAAK,+BAA+B,CAAA;IAC1C,MAAM,SAAS,mCAAmC,CAAA;IAClD,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,SAAS,mCAAmC,CAAA;IAGlD,MAAM,QAAQ,mCAAmC,CAAA;IACjD,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,cAAc,0CAA0C,CAAA;IAC9D,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,MAAM,iCAAiC,CAAA;IAC7C,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,MAAM,iCAAiC,CAAA;IAC7C,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,SAAS,qCAAqC,CAAA;IACpD,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,oBAAoB,2CAA2C,CAAA;IACrE,MAAM,eAAe,2CAA2C,CAAA;IAGhE,MAAM,OAAO,wCAAwC,CAAA;IACrD,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,SAAS,0CAA0C,CAAA;IACzD,MAAM,YAAY,6CAA6C,CAAA;IAC/D,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,UAAU,2CAA2C,CAAA;IAC3D,MAAM,SAAS,0CAA0C,CAAA;IACzD,MAAM,cAAc,0CAA0C,CAAA;CACxE"}
|
|
1
|
+
{"version":3,"file":"DeviceManualUrls.d.ts","sourceRoot":"","sources":["../src/DeviceManualUrls.ts"],"names":[],"mappings":"AAAA,yBAAiB,gBAAgB,CAAC;IAEvB,MAAM,QAAQ,sBAAsB,CAAA;IAGpC,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,KAAK,+BAA+B,CAAA;IAC1C,MAAM,SAAS,mCAAmC,CAAA;IAClD,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,SAAS,mCAAmC,CAAA;IAGlD,MAAM,QAAQ,mCAAmC,CAAA;IACjD,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,cAAc,0CAA0C,CAAA;IAC9D,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,MAAM,iCAAiC,CAAA;IAC7C,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,MAAM,iCAAiC,CAAA;IAC7C,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,SAAS,qCAAqC,CAAA;IACpD,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,oBAAoB,2CAA2C,CAAA;IACrE,MAAM,eAAe,2CAA2C,CAAA;IAGhE,MAAM,OAAO,wCAAwC,CAAA;IACrD,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,SAAS,0CAA0C,CAAA;IACzD,MAAM,YAAY,6CAA6C,CAAA;IAC/D,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,UAAU,2CAA2C,CAAA;IAC3D,MAAM,SAAS,0CAA0C,CAAA;IACzD,MAAM,cAAc,0CAA0C,CAAA;CACxE"}
|
package/dist/DeviceManualUrls.js
CHANGED
|
@@ -12,6 +12,7 @@ export var DeviceManualUrls;
|
|
|
12
12
|
DeviceManualUrls.Autotune = "manuals/devices/audio/autotune";
|
|
13
13
|
DeviceManualUrls.StereoTool = "manuals/devices/audio/stereotool";
|
|
14
14
|
DeviceManualUrls.Delay = "manuals/devices/audio/delay";
|
|
15
|
+
DeviceManualUrls.Convolver = "manuals/devices/audio/convolver";
|
|
15
16
|
DeviceManualUrls.DattorroReverb = "manuals/devices/audio/dattorro-reverb";
|
|
16
17
|
DeviceManualUrls.Maximizer = "manuals/devices/audio/maximizer";
|
|
17
18
|
DeviceManualUrls.Compressor = "manuals/devices/audio/compressor";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Observer, Option, Subscription, Terminable, unitValue } from "@opendaw/lib-std";
|
|
2
2
|
import { Address } from "@opendaw/lib-box";
|
|
3
3
|
import { AutomatableParameterFieldAdapter } from "./AutomatableParameterFieldAdapter";
|
|
4
|
-
import {
|
|
4
|
+
import { ParameterTracks } from "./timeline/ParameterTracks";
|
|
5
5
|
export type AutomationMode = "read" | "touch" | "latch";
|
|
6
6
|
export type ParameterWriteEvent = {
|
|
7
7
|
adapter: AutomatableParameterFieldAdapter;
|
|
@@ -13,14 +13,10 @@ export declare class ParameterFieldAdapters {
|
|
|
13
13
|
register(adapter: AutomatableParameterFieldAdapter): Terminable;
|
|
14
14
|
get(address: Address): AutomatableParameterFieldAdapter;
|
|
15
15
|
opt(address: Address): Option<AutomatableParameterFieldAdapter>;
|
|
16
|
-
registerTracks(address: Address, tracks:
|
|
17
|
-
getTracks(address: Address): Option<
|
|
16
|
+
registerTracks(address: Address, tracks: ParameterTracks): Terminable;
|
|
17
|
+
getTracks(address: Address): Option<ParameterTracks>;
|
|
18
18
|
setMode(address: Address, mode: AutomationMode): void;
|
|
19
19
|
getMode(address: Address): AutomationMode;
|
|
20
|
-
touchStart(address: Address): void;
|
|
21
|
-
touchEnd(address: Address): void;
|
|
22
|
-
isTouched(address: Address): boolean;
|
|
23
|
-
subscribeTouchEnd(observer: Observer<Address>): Subscription;
|
|
24
20
|
subscribeWrites(observer: Observer<ParameterWriteEvent>): Subscription;
|
|
25
21
|
notifyWrite(adapter: AutomatableParameterFieldAdapter, previousUnitValue: unitValue): void;
|
|
26
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParameterFieldAdapters.d.ts","sourceRoot":"","sources":["../src/ParameterFieldAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAE,MAAM,EAAa,YAAY,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAC3G,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAC,gCAAgC,EAAC,MAAM,oCAAoC,CAAA;AACnF,OAAO,EAAC,eAAe,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"ParameterFieldAdapters.d.ts","sourceRoot":"","sources":["../src/ParameterFieldAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAE,MAAM,EAAa,YAAY,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAC3G,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAC,gCAAgC,EAAC,MAAM,oCAAoC,CAAA;AACnF,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAE1D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,OAAO,EAAE,gCAAgC,CAAA;IACzC,iBAAiB,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED,qBAAa,sBAAsB;;;IAa/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,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,UAAU;IAMrE,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;IAIpD,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IACrD,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc;IAEzC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,YAAY;IAItE,WAAW,CAAC,OAAO,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,SAAS,GAAG,IAAI;CAG7F"}
|
|
@@ -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 _ParameterFieldAdapters_set, _ParameterFieldAdapters_writeNotifier, _ParameterFieldAdapters_tracksMap,
|
|
12
|
+
var _ParameterFieldAdapters_set, _ParameterFieldAdapters_writeNotifier, _ParameterFieldAdapters_tracksMap, _ParameterFieldAdapters_modeMap;
|
|
13
13
|
import { Notifier, Option } from "@opendaw/lib-std";
|
|
14
14
|
import { Address } from "@opendaw/lib-box";
|
|
15
15
|
export class ParameterFieldAdapters {
|
|
@@ -17,14 +17,10 @@ export class ParameterFieldAdapters {
|
|
|
17
17
|
_ParameterFieldAdapters_set.set(this, void 0);
|
|
18
18
|
_ParameterFieldAdapters_writeNotifier.set(this, void 0);
|
|
19
19
|
_ParameterFieldAdapters_tracksMap.set(this, void 0);
|
|
20
|
-
_ParameterFieldAdapters_touchedSet.set(this, void 0);
|
|
21
|
-
_ParameterFieldAdapters_touchEndNotifier.set(this, void 0);
|
|
22
20
|
_ParameterFieldAdapters_modeMap.set(this, void 0);
|
|
23
21
|
__classPrivateFieldSet(this, _ParameterFieldAdapters_set, Address.newSet(adapter => adapter.field.address), "f");
|
|
24
22
|
__classPrivateFieldSet(this, _ParameterFieldAdapters_writeNotifier, new Notifier(), "f");
|
|
25
23
|
__classPrivateFieldSet(this, _ParameterFieldAdapters_tracksMap, new Map(), "f");
|
|
26
|
-
__classPrivateFieldSet(this, _ParameterFieldAdapters_touchedSet, new Set(), "f");
|
|
27
|
-
__classPrivateFieldSet(this, _ParameterFieldAdapters_touchEndNotifier, new Notifier(), "f");
|
|
28
24
|
__classPrivateFieldSet(this, _ParameterFieldAdapters_modeMap, new Map(), "f");
|
|
29
25
|
}
|
|
30
26
|
register(adapter) {
|
|
@@ -43,15 +39,6 @@ export class ParameterFieldAdapters {
|
|
|
43
39
|
}
|
|
44
40
|
setMode(address, mode) { __classPrivateFieldGet(this, _ParameterFieldAdapters_modeMap, "f").set(address.toString(), mode); }
|
|
45
41
|
getMode(address) { return __classPrivateFieldGet(this, _ParameterFieldAdapters_modeMap, "f").get(address.toString()) ?? "read"; }
|
|
46
|
-
touchStart(address) { __classPrivateFieldGet(this, _ParameterFieldAdapters_touchedSet, "f").add(address.toString()); }
|
|
47
|
-
touchEnd(address) {
|
|
48
|
-
const key = address.toString();
|
|
49
|
-
if (__classPrivateFieldGet(this, _ParameterFieldAdapters_touchedSet, "f").delete(key)) {
|
|
50
|
-
__classPrivateFieldGet(this, _ParameterFieldAdapters_touchEndNotifier, "f").notify(address);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
isTouched(address) { return __classPrivateFieldGet(this, _ParameterFieldAdapters_touchedSet, "f").has(address.toString()); }
|
|
54
|
-
subscribeTouchEnd(observer) { return __classPrivateFieldGet(this, _ParameterFieldAdapters_touchEndNotifier, "f").subscribe(observer); }
|
|
55
42
|
subscribeWrites(observer) {
|
|
56
43
|
return __classPrivateFieldGet(this, _ParameterFieldAdapters_writeNotifier, "f").subscribe(observer);
|
|
57
44
|
}
|
|
@@ -59,4 +46,4 @@ export class ParameterFieldAdapters {
|
|
|
59
46
|
__classPrivateFieldGet(this, _ParameterFieldAdapters_writeNotifier, "f").notify({ adapter, previousUnitValue });
|
|
60
47
|
}
|
|
61
48
|
}
|
|
62
|
-
_ParameterFieldAdapters_set = new WeakMap(), _ParameterFieldAdapters_writeNotifier = new WeakMap(), _ParameterFieldAdapters_tracksMap = new WeakMap(),
|
|
49
|
+
_ParameterFieldAdapters_set = new WeakMap(), _ParameterFieldAdapters_writeNotifier = new WeakMap(), _ParameterFieldAdapters_tracksMap = new WeakMap(), _ParameterFieldAdapters_modeMap = new WeakMap();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParameterOwner.d.ts","sourceRoot":"","sources":["../src/ParameterOwner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAC,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAa,MAAM,kBAAkB,CAAA;AAG3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAA;AAIpE,yBAAiB,cAAc,CAAC;IAGrB,MAAM,MAAM,GAAI,SAAS,kBAAkB,EAAE,QAAQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAcjF,CAAA;IAIM,MAAM,uBAAuB,GAAI,SAAS,kBAAkB,EAC3B,QAAQ,MAAM,EACd,UAAU,QAAQ,CAAC,MAAM,CAAC,KAAG,YAepE,CAAA;IAEM,MAAM,WAAW,GAAI,SAAS,kBAAkB,EAAE,QAAQ,MAAM,KAAG,MAAM,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ParameterOwner.d.ts","sourceRoot":"","sources":["../src/ParameterOwner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAC,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAa,MAAM,kBAAkB,CAAA;AAG3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAA;AAIpE,yBAAiB,cAAc,CAAC;IAGrB,MAAM,MAAM,GAAI,SAAS,kBAAkB,EAAE,QAAQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAcjF,CAAA;IAIM,MAAM,uBAAuB,GAAI,SAAS,kBAAkB,EAC3B,QAAQ,MAAM,EACd,UAAU,QAAQ,CAAC,MAAM,CAAC,KAAG,YAepE,CAAA;IAEM,MAAM,WAAW,GAAI,SAAS,kBAAkB,EAAE,QAAQ,MAAM,KAAG,MAAM,CAAC,mBAAmB,CAYnG,CAAA;CAyBJ"}
|
package/dist/ParameterOwner.js
CHANGED
|
@@ -48,6 +48,10 @@ export var ParameterOwner;
|
|
|
48
48
|
if (box instanceof AudioUnitBox) {
|
|
49
49
|
return Option.wrap(context.boxAdapters.adapterFor(box, AudioUnitBoxAdapter));
|
|
50
50
|
}
|
|
51
|
+
// A modulated DEPTH owns no device of its own, so the walk follows the assignment to what it drives.
|
|
52
|
+
if (box instanceof ModulationBox) {
|
|
53
|
+
return box.target.targetVertex.flatMap(target => ParameterOwner.audioUnitOf(context, target));
|
|
54
|
+
}
|
|
51
55
|
const own = unitOf(context, box);
|
|
52
56
|
if (own.nonEmpty()) {
|
|
53
57
|
return own;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { RingBuffer } from "./RingBuffer";
|
|
2
2
|
export interface RecordingProcessorOptions extends RingBuffer.Config {
|
|
3
3
|
}
|
|
4
|
+
export interface RecordingProcessorToClient {
|
|
5
|
+
firstQuantum(contextTime: number): void;
|
|
6
|
+
}
|
|
7
|
+
export declare const RecordingProcessorChannel = "recording-to-client";
|
|
4
8
|
//# sourceMappingURL=RecordingProcessorOptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordingProcessorOptions.d.ts","sourceRoot":"","sources":["../src/RecordingProcessorOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAEvC,MAAM,WAAW,yBAA0B,SAAQ,UAAU,CAAC,MAAM;CAAG"}
|
|
1
|
+
{"version":3,"file":"RecordingProcessorOptions.d.ts","sourceRoot":"","sources":["../src/RecordingProcessorOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAEvC,MAAM,WAAW,yBAA0B,SAAQ,UAAU,CAAC,MAAM;CAAG;AAEvE,MAAM,WAAW,0BAA0B;IACvC,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1C;AAED,eAAO,MAAM,yBAAyB,wBAAwB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export const RecordingProcessorChannel = "recording-to-client";
|
package/dist/RootBoxAdapter.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { BoxAdaptersContext } from "./BoxAdaptersContext";
|
|
|
11
11
|
import { BoxAdapter } from "./BoxAdapter";
|
|
12
12
|
import { TimelineBoxAdapter } from "./timeline/TimelineBoxAdapter";
|
|
13
13
|
import { GrooveShuffleBoxAdapter } from "./grooves/GrooveShuffleBoxAdapter";
|
|
14
|
+
import { ModulatorBoxAdapter } from "./modulation/ModulatorBoxAdapter";
|
|
14
15
|
import { PianoModeAdapter } from "./PianoModeAdapter";
|
|
15
16
|
import { LabeledAudioOutput, LabeledAudioOutputsOwner } from "./LabeledAudioOutputsOwner";
|
|
16
17
|
export declare class RootBoxAdapter implements BoxAdapter, LabeledAudioOutputsOwner {
|
|
@@ -21,6 +22,7 @@ export declare class RootBoxAdapter implements BoxAdapter, LabeledAudioOutputsOw
|
|
|
21
22
|
get box(): RootBox;
|
|
22
23
|
get audioBusses(): BoxAdapterCollection<AudioBusBoxAdapter>;
|
|
23
24
|
get audioUnits(): IndexedBoxAdapterCollection<AudioUnitBoxAdapter, Pointers.AudioUnits>;
|
|
25
|
+
get modulators(): IndexedBoxAdapterCollection<ModulatorBoxAdapter, Pointers.ModulatorCollection>;
|
|
24
26
|
get clips(): ReadonlyArray<AnyClipBoxAdapter>;
|
|
25
27
|
get groove(): GrooveShuffleBoxAdapter;
|
|
26
28
|
get timeline(): TimelineBoxAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RootBoxAdapter.d.ts","sourceRoot":"","sources":["../src/RootBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RootBoxAdapter.d.ts","sourceRoot":"","sources":["../src/RootBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,OAAO,EAAC,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAuB,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAC,uBAAuB,EAAC,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAwB,mBAAmB,EAAC,MAAM,kCAAkC,CAAA;AAC3F,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAC,kBAAkB,EAAE,wBAAwB,EAAC,MAAM,4BAA4B,CAAA;AAEvF,qBAAa,cAAe,YAAW,UAAU,EAAE,wBAAwB;;gBAS3D,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO;IAgBrD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,GAAG,IAAI,OAAO,CAAmB;IACrC,IAAI,WAAW,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAA2B;IACtF,IAAI,UAAU,IAAI,2BAA2B,CAAC,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAA0B;IACjH,IAAI,UAAU,IAAI,2BAA2B,CAAC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAE/F;IACD,IAAI,KAAK,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAI5C;IACD,IAAI,MAAM,IAAI,uBAAuB,CAGpC;IACD,IAAI,QAAQ,IAAI,kBAAkB,CAGjC;IACD,IAAI,SAAS,IAAI,gBAAgB,CAAyB;IAC1D,IAAI,OAAO,IAAI,IAAI,CAAgD;IACnE,IAAI,iBAAiB,IAAI,aAAa,CAAC,aAAa,CAAC,CAEpD;IAEC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAUrD,SAAS,IAAI,IAAI;CACpB"}
|
package/dist/RootBoxAdapter.js
CHANGED
|
@@ -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 _RootBoxAdapter_context, _RootBoxAdapter_box, _RootBoxAdapter_audioUnits, _RootBoxAdapter_audioBusses, _RootBoxAdapter_pianoMode;
|
|
12
|
+
var _RootBoxAdapter_context, _RootBoxAdapter_box, _RootBoxAdapter_audioUnits, _RootBoxAdapter_audioBusses, _RootBoxAdapter_modulators, _RootBoxAdapter_pianoMode;
|
|
13
13
|
import { MIDIOutputBox } from "@opendaw/studio-boxes";
|
|
14
14
|
import { asInstanceOf, Option } from "@opendaw/lib-std";
|
|
15
15
|
import { AudioBusBoxAdapter } from "./audio-unit/AudioBusBoxAdapter";
|
|
@@ -19,6 +19,7 @@ import { AudioUnitBoxAdapter } from "./audio-unit/AudioUnitBoxAdapter";
|
|
|
19
19
|
import { BoxAdapterCollection } from "./BoxAdapterCollection";
|
|
20
20
|
import { TimelineBoxAdapter } from "./timeline/TimelineBoxAdapter";
|
|
21
21
|
import { GrooveShuffleBoxAdapter } from "./grooves/GrooveShuffleBoxAdapter";
|
|
22
|
+
import { isModulatorBoxAdapter } from "./modulation/ModulatorBoxAdapter";
|
|
22
23
|
import { PianoModeAdapter } from "./PianoModeAdapter";
|
|
23
24
|
export class RootBoxAdapter {
|
|
24
25
|
constructor(context, box) {
|
|
@@ -26,11 +27,13 @@ export class RootBoxAdapter {
|
|
|
26
27
|
_RootBoxAdapter_box.set(this, void 0);
|
|
27
28
|
_RootBoxAdapter_audioUnits.set(this, void 0);
|
|
28
29
|
_RootBoxAdapter_audioBusses.set(this, void 0);
|
|
30
|
+
_RootBoxAdapter_modulators.set(this, void 0);
|
|
29
31
|
_RootBoxAdapter_pianoMode.set(this, void 0);
|
|
30
32
|
__classPrivateFieldSet(this, _RootBoxAdapter_context, context, "f");
|
|
31
33
|
__classPrivateFieldSet(this, _RootBoxAdapter_box, box, "f");
|
|
32
34
|
__classPrivateFieldSet(this, _RootBoxAdapter_audioUnits, IndexedBoxAdapterCollection.create(__classPrivateFieldGet(this, _RootBoxAdapter_box, "f").audioUnits, box => __classPrivateFieldGet(this, _RootBoxAdapter_context, "f").boxAdapters.adapterFor(box, AudioUnitBoxAdapter), Pointers.AudioUnits), "f");
|
|
33
35
|
__classPrivateFieldSet(this, _RootBoxAdapter_audioBusses, new BoxAdapterCollection(__classPrivateFieldGet(this, _RootBoxAdapter_box, "f").audioBusses.pointerHub, box => __classPrivateFieldGet(this, _RootBoxAdapter_context, "f").boxAdapters.adapterFor(box, AudioBusBoxAdapter), Pointers.AudioBusses), "f");
|
|
36
|
+
__classPrivateFieldSet(this, _RootBoxAdapter_modulators, IndexedBoxAdapterCollection.create(__classPrivateFieldGet(this, _RootBoxAdapter_box, "f").modulators, box => __classPrivateFieldGet(this, _RootBoxAdapter_context, "f").boxAdapters.adapterFor(box, isModulatorBoxAdapter), Pointers.ModulatorCollection), "f");
|
|
34
37
|
__classPrivateFieldSet(this, _RootBoxAdapter_pianoMode, new PianoModeAdapter(__classPrivateFieldGet(this, _RootBoxAdapter_box, "f").pianoMode), "f");
|
|
35
38
|
}
|
|
36
39
|
get uuid() { return __classPrivateFieldGet(this, _RootBoxAdapter_box, "f").address.uuid; }
|
|
@@ -38,6 +41,9 @@ export class RootBoxAdapter {
|
|
|
38
41
|
get box() { return __classPrivateFieldGet(this, _RootBoxAdapter_box, "f"); }
|
|
39
42
|
get audioBusses() { return __classPrivateFieldGet(this, _RootBoxAdapter_audioBusses, "f"); }
|
|
40
43
|
get audioUnits() { return __classPrivateFieldGet(this, _RootBoxAdapter_audioUnits, "f"); }
|
|
44
|
+
get modulators() {
|
|
45
|
+
return __classPrivateFieldGet(this, _RootBoxAdapter_modulators, "f");
|
|
46
|
+
}
|
|
41
47
|
get clips() {
|
|
42
48
|
return __classPrivateFieldGet(this, _RootBoxAdapter_audioUnits, "f").adapters()
|
|
43
49
|
.flatMap(adapter => adapter.tracks.collection.adapters())
|
|
@@ -67,4 +73,4 @@ export class RootBoxAdapter {
|
|
|
67
73
|
}
|
|
68
74
|
terminate() { __classPrivateFieldGet(this, _RootBoxAdapter_audioUnits, "f").terminate(); }
|
|
69
75
|
}
|
|
70
|
-
_RootBoxAdapter_context = new WeakMap(), _RootBoxAdapter_box = new WeakMap(), _RootBoxAdapter_audioUnits = new WeakMap(), _RootBoxAdapter_audioBusses = new WeakMap(), _RootBoxAdapter_pianoMode = new WeakMap();
|
|
76
|
+
_RootBoxAdapter_context = new WeakMap(), _RootBoxAdapter_box = new WeakMap(), _RootBoxAdapter_audioUnits = new WeakMap(), _RootBoxAdapter_audioBusses = new WeakMap(), _RootBoxAdapter_modulators = new WeakMap(), _RootBoxAdapter_pianoMode = new WeakMap();
|
|
@@ -1,22 +1,9 @@
|
|
|
1
|
-
import { int, Observer, Option, Subscription, Terminable } from "@opendaw/lib-std";
|
|
2
|
-
import { Pointers } from "@opendaw/studio-enums";
|
|
3
|
-
import { Vertex } from "@opendaw/lib-box";
|
|
4
1
|
import { AudioUnitBoxAdapter } from "./AudioUnitBoxAdapter";
|
|
5
|
-
import { IndexedAdapterCollectionListener, IndexedBoxAdapterCollection } from "../IndexedBoxAdapterCollection";
|
|
6
|
-
import { TrackBoxAdapter } from "../timeline/TrackBoxAdapter";
|
|
7
2
|
import { BoxAdapters } from "../BoxAdapters";
|
|
8
|
-
import {
|
|
9
|
-
export declare class AudioUnitTracks
|
|
3
|
+
import { FieldParameterTracks } from "../timeline/ParameterTracks";
|
|
4
|
+
export declare class AudioUnitTracks extends FieldParameterTracks {
|
|
10
5
|
#private;
|
|
11
6
|
constructor(adapter: AudioUnitBoxAdapter, boxAdapters: BoxAdapters);
|
|
12
|
-
create(type: TrackType, target: Vertex<Pointers.Automation | Pointers>, index?: int): void;
|
|
13
|
-
controls(target: Vertex<Pointers.Automation | Pointers>): Option<TrackBoxAdapter>;
|
|
14
|
-
delete(adapter: TrackBoxAdapter): void;
|
|
15
7
|
get audioUnitBox(): AudioUnitBoxAdapter["box"];
|
|
16
|
-
get collection(): IndexedBoxAdapterCollection<TrackBoxAdapter, Pointers.TrackCollection>;
|
|
17
|
-
values(): ReadonlyArray<TrackBoxAdapter>;
|
|
18
|
-
catchupAndSubscribe(listener: IndexedAdapterCollectionListener<TrackBoxAdapter>): Subscription;
|
|
19
|
-
subscribeAnyChange(observer: Observer<void>): Subscription;
|
|
20
|
-
terminate(): void;
|
|
21
8
|
}
|
|
22
9
|
//# sourceMappingURL=AudioUnitTracks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioUnitTracks.d.ts","sourceRoot":"","sources":["../../src/audio-unit/AudioUnitTracks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"AudioUnitTracks.d.ts","sourceRoot":"","sources":["../../src/audio-unit/AudioUnitTracks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAA;AAEhE,qBAAa,eAAgB,SAAQ,oBAAoB;;gBAGzC,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW;IAKlE,IAAI,YAAY,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAA2B;CAC5E"}
|