@opendaw/studio-adapters 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AutomatableParameterFieldAdapter.d.ts +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/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/protocols.d.ts +2 -0
- 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/package.json +10 -10
|
@@ -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":"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"}
|
|
@@ -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;
|
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"}
|
|
@@ -9,68 +9,14 @@ 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 _AudioUnitTracks_adapter
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
import { TrackBox } from "@opendaw/studio-boxes";
|
|
16
|
-
import { IndexedBoxAdapterCollection } from "../IndexedBoxAdapterCollection";
|
|
17
|
-
import { TrackBoxAdapter } from "../timeline/TrackBoxAdapter";
|
|
18
|
-
export class AudioUnitTracks {
|
|
12
|
+
var _AudioUnitTracks_adapter;
|
|
13
|
+
import { FieldParameterTracks } from "../timeline/ParameterTracks";
|
|
14
|
+
export class AudioUnitTracks extends FieldParameterTracks {
|
|
19
15
|
constructor(adapter, boxAdapters) {
|
|
16
|
+
super(adapter.box.graph, adapter.box.tracks, boxAdapters);
|
|
20
17
|
_AudioUnitTracks_adapter.set(this, void 0);
|
|
21
|
-
_AudioUnitTracks_regionNotifier.set(this, new Notifier());
|
|
22
|
-
_AudioUnitTracks_collection.set(this, void 0);
|
|
23
|
-
_AudioUnitTracks_subscriptions.set(this, void 0);
|
|
24
|
-
_AudioUnitTracks_subscription.set(this, void 0);
|
|
25
18
|
__classPrivateFieldSet(this, _AudioUnitTracks_adapter, adapter, "f");
|
|
26
|
-
__classPrivateFieldSet(this, _AudioUnitTracks_collection, IndexedBoxAdapterCollection.create(adapter.box.tracks, box => boxAdapters.adapterFor(box, TrackBoxAdapter), Pointers.TrackCollection), "f");
|
|
27
|
-
__classPrivateFieldSet(this, _AudioUnitTracks_subscriptions, UUID.newSet(({ uuid }) => uuid), "f");
|
|
28
|
-
__classPrivateFieldSet(this, _AudioUnitTracks_subscription, __classPrivateFieldGet(this, _AudioUnitTracks_collection, "f").catchupAndSubscribe({
|
|
29
|
-
onAdd: (adapter) => __classPrivateFieldGet(this, _AudioUnitTracks_subscriptions, "f").add({
|
|
30
|
-
uuid: adapter.uuid,
|
|
31
|
-
subscription: adapter.regions.subscribeChanges(() => __classPrivateFieldGet(this, _AudioUnitTracks_regionNotifier, "f").notify())
|
|
32
|
-
}),
|
|
33
|
-
onRemove: ({ uuid }) => __classPrivateFieldGet(this, _AudioUnitTracks_subscriptions, "f").removeByKey(uuid).subscription.terminate(),
|
|
34
|
-
onReorder: (_adapter) => { }
|
|
35
|
-
}), "f");
|
|
36
|
-
}
|
|
37
|
-
create(type, target, index) {
|
|
38
|
-
const graph = __classPrivateFieldGet(this, _AudioUnitTracks_adapter, "f").box.graph;
|
|
39
|
-
const tracks = __classPrivateFieldGet(this, _AudioUnitTracks_adapter, "f").box.tracks;
|
|
40
|
-
TrackBox.create(graph, UUID.generate(), box => {
|
|
41
|
-
box.index.setValue(index ?? __classPrivateFieldGet(this, _AudioUnitTracks_collection, "f").getMinFreeIndex());
|
|
42
|
-
box.type.setValue(type);
|
|
43
|
-
box.tracks.refer(tracks);
|
|
44
|
-
box.target.refer(target);
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
controls(target) {
|
|
48
|
-
return Option.wrap(__classPrivateFieldGet(this, _AudioUnitTracks_collection, "f").adapters()
|
|
49
|
-
.find(adapter => adapter.target.targetVertex.contains(target), false));
|
|
50
|
-
}
|
|
51
|
-
delete(adapter) {
|
|
52
|
-
const adapters = __classPrivateFieldGet(this, _AudioUnitTracks_collection, "f").adapters();
|
|
53
|
-
const deleteIndex = adapters.indexOf(adapter);
|
|
54
|
-
if (deleteIndex === -1) {
|
|
55
|
-
return panic(`Cannot delete ${adapter}. Does not exist.`);
|
|
56
|
-
}
|
|
57
|
-
for (let index = deleteIndex + 1; index < adapters.length; index++) {
|
|
58
|
-
adapters[index].indexField.setValue(index - 1);
|
|
59
|
-
}
|
|
60
|
-
adapter.box.delete();
|
|
61
19
|
}
|
|
62
20
|
get audioUnitBox() { return __classPrivateFieldGet(this, _AudioUnitTracks_adapter, "f").box; }
|
|
63
|
-
get collection() { return __classPrivateFieldGet(this, _AudioUnitTracks_collection, "f"); }
|
|
64
|
-
values() { return __classPrivateFieldGet(this, _AudioUnitTracks_collection, "f").adapters(); }
|
|
65
|
-
catchupAndSubscribe(listener) {
|
|
66
|
-
return __classPrivateFieldGet(this, _AudioUnitTracks_collection, "f").catchupAndSubscribe(listener);
|
|
67
|
-
}
|
|
68
|
-
subscribeAnyChange(observer) { return __classPrivateFieldGet(this, _AudioUnitTracks_regionNotifier, "f").subscribe(observer); }
|
|
69
|
-
terminate() {
|
|
70
|
-
__classPrivateFieldGet(this, _AudioUnitTracks_collection, "f").terminate();
|
|
71
|
-
__classPrivateFieldGet(this, _AudioUnitTracks_subscription, "f").terminate();
|
|
72
|
-
__classPrivateFieldGet(this, _AudioUnitTracks_subscriptions, "f").forEach(({ subscription }) => subscription.terminate());
|
|
73
|
-
__classPrivateFieldGet(this, _AudioUnitTracks_subscriptions, "f").clear();
|
|
74
|
-
}
|
|
75
21
|
}
|
|
76
|
-
_AudioUnitTracks_adapter = new WeakMap()
|
|
22
|
+
_AudioUnitTracks_adapter = new WeakMap();
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { UUID } from "@opendaw/lib-std";
|
|
2
|
+
import { Address, BooleanField, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
|
|
3
|
+
import { ConvolverDeviceBox } from "@opendaw/studio-boxes";
|
|
4
|
+
import { Pointers } from "@opendaw/studio-enums";
|
|
5
|
+
import { AudioEffectDeviceAdapter, DeviceHost } from "../../DeviceAdapter";
|
|
6
|
+
import { LabeledAudioOutput } from "../../LabeledAudioOutputsOwner";
|
|
7
|
+
import { BoxAdaptersContext } from "../../BoxAdaptersContext";
|
|
8
|
+
import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
|
|
9
|
+
export declare class ConvolverDeviceBoxAdapter implements AudioEffectDeviceAdapter {
|
|
10
|
+
#private;
|
|
11
|
+
static readonly MAX_IR_FRAMES = 770048;
|
|
12
|
+
readonly type = "audio-effect";
|
|
13
|
+
readonly accepts = "audio";
|
|
14
|
+
readonly manualUrl = "manuals/devices/audio/convolver";
|
|
15
|
+
readonly namedParameter: {
|
|
16
|
+
readonly wet: import("../..").AutomatableParameterFieldAdapter<number>;
|
|
17
|
+
readonly dry: import("../..").AutomatableParameterFieldAdapter<number>;
|
|
18
|
+
readonly preDelay: import("../..").AutomatableParameterFieldAdapter<number>;
|
|
19
|
+
};
|
|
20
|
+
constructor(context: BoxAdaptersContext, box: ConvolverDeviceBox);
|
|
21
|
+
get box(): ConvolverDeviceBox;
|
|
22
|
+
get uuid(): UUID.Bytes;
|
|
23
|
+
get address(): Address;
|
|
24
|
+
get indexField(): Int32Field;
|
|
25
|
+
get labelField(): StringField;
|
|
26
|
+
get enabledField(): BooleanField;
|
|
27
|
+
get minimizedField(): BooleanField;
|
|
28
|
+
get host(): PointerField<Pointers.AudioEffectHost>;
|
|
29
|
+
get fileField(): PointerField<Pointers.AudioFile>;
|
|
30
|
+
deviceHost(): DeviceHost;
|
|
31
|
+
audioUnitBoxAdapter(): AudioUnitBoxAdapter;
|
|
32
|
+
labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
|
|
33
|
+
terminate(): void;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ConvolverDeviceBoxAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConvolverDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/ConvolverDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAG3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,yBAA0B,YAAW,wBAAwB;;IAEtE,MAAM,CAAC,QAAQ,CAAC,aAAa,UAAS;IAEtC,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAC1B,QAAQ,CAAC,SAAS,qCAA6B;IAM/C,QAAQ,CAAC,cAAc;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB;IAOhE,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwB;IAC1E,IAAI,SAAS,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAwB;IAEzE,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAEzC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIpD,SAAS,IAAI,IAAI;CAoBpB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
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 _ConvolverDeviceBoxAdapter_instances, _ConvolverDeviceBoxAdapter_context, _ConvolverDeviceBoxAdapter_box, _ConvolverDeviceBoxAdapter_parametric, _ConvolverDeviceBoxAdapter_wrapParameters;
|
|
13
|
+
import { Option, StringMapping, ValueMapping } from "@opendaw/lib-std";
|
|
14
|
+
import { Devices } from "../../DeviceAdapter";
|
|
15
|
+
import { DeviceManualUrls } from "../../DeviceManualUrls";
|
|
16
|
+
import { ParameterAdapterSet } from "../../ParameterAdapterSet";
|
|
17
|
+
export class ConvolverDeviceBoxAdapter {
|
|
18
|
+
constructor(context, box) {
|
|
19
|
+
_ConvolverDeviceBoxAdapter_instances.add(this);
|
|
20
|
+
this.type = "audio-effect";
|
|
21
|
+
this.accepts = "audio";
|
|
22
|
+
this.manualUrl = DeviceManualUrls.Convolver;
|
|
23
|
+
_ConvolverDeviceBoxAdapter_context.set(this, void 0);
|
|
24
|
+
_ConvolverDeviceBoxAdapter_box.set(this, void 0);
|
|
25
|
+
_ConvolverDeviceBoxAdapter_parametric.set(this, void 0);
|
|
26
|
+
__classPrivateFieldSet(this, _ConvolverDeviceBoxAdapter_context, context, "f");
|
|
27
|
+
__classPrivateFieldSet(this, _ConvolverDeviceBoxAdapter_box, box, "f");
|
|
28
|
+
__classPrivateFieldSet(this, _ConvolverDeviceBoxAdapter_parametric, new ParameterAdapterSet(__classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_context, "f")), "f");
|
|
29
|
+
this.namedParameter = __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_instances, "m", _ConvolverDeviceBoxAdapter_wrapParameters).call(this, box);
|
|
30
|
+
}
|
|
31
|
+
get box() { return __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_box, "f"); }
|
|
32
|
+
get uuid() { return __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_box, "f").address.uuid; }
|
|
33
|
+
get address() { return __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_box, "f").address; }
|
|
34
|
+
get indexField() { return __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_box, "f").index; }
|
|
35
|
+
get labelField() { return __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_box, "f").label; }
|
|
36
|
+
get enabledField() { return __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_box, "f").enabled; }
|
|
37
|
+
get minimizedField() { return __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_box, "f").minimized; }
|
|
38
|
+
get host() { return __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_box, "f").host; }
|
|
39
|
+
get fileField() { return __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_box, "f").file; }
|
|
40
|
+
deviceHost() {
|
|
41
|
+
return __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_context, "f").boxAdapters
|
|
42
|
+
.adapterFor(__classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
|
|
43
|
+
}
|
|
44
|
+
audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
|
|
45
|
+
*labeledAudioOutputs() {
|
|
46
|
+
yield { address: this.address, label: this.labelField.getValue(), children: () => Option.None };
|
|
47
|
+
}
|
|
48
|
+
terminate() {
|
|
49
|
+
__classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_parametric, "f").terminate();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
_ConvolverDeviceBoxAdapter_context = new WeakMap(), _ConvolverDeviceBoxAdapter_box = new WeakMap(), _ConvolverDeviceBoxAdapter_parametric = new WeakMap(), _ConvolverDeviceBoxAdapter_instances = new WeakSet(), _ConvolverDeviceBoxAdapter_wrapParameters = function _ConvolverDeviceBoxAdapter_wrapParameters(box) {
|
|
53
|
+
return {
|
|
54
|
+
wet: __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_parametric, "f").createParameter(box.wet, ValueMapping.DefaultDecibel, StringMapping.decible, "Wet"),
|
|
55
|
+
dry: __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_parametric, "f").createParameter(box.dry, ValueMapping.DefaultDecibel, StringMapping.decible, "Dry"),
|
|
56
|
+
preDelay: __classPrivateFieldGet(this, _ConvolverDeviceBoxAdapter_parametric, "f").createParameter(box.preDelay, ValueMapping.powerByCenter(0.050, 0.0, 0.500), StringMapping.numeric({ unit: "s", fractionDigits: 1, unitPrefix: true }), "Pre-Delay")
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
// WASM CONTRACT: mirrors `MAX_IR_FRAMES` (crates/dsp/src/convolution.rs), engine-rate frames after resampling.
|
|
60
|
+
ConvolverDeviceBoxAdapter.MAX_IR_FRAMES = 770048;
|
package/dist/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export * from "./NoteSignal";
|
|
|
24
24
|
export * from "./NoteStreamReceiver";
|
|
25
25
|
export * from "./ParameterAdapterSet";
|
|
26
26
|
export * from "./ParameterFieldAdapters";
|
|
27
|
+
export * from "./ParameterOwner";
|
|
27
28
|
export * from "./Parsing";
|
|
28
29
|
export * from "./PeakMeterProcessorOptions";
|
|
29
30
|
export * from "./PianoModeAdapter";
|
|
@@ -56,6 +57,7 @@ export * from "./devices/audio-effects/AudioEffectComposite/AudioEffectComposite
|
|
|
56
57
|
export * from "./devices/audio-effects/AudioEffectCompositeBoxAdapter";
|
|
57
58
|
export * from "./devices/audio-effects/AutotuneDeviceBoxAdapter";
|
|
58
59
|
export * from "./devices/audio-effects/CompressorDeviceBoxAdapter";
|
|
60
|
+
export * from "./devices/audio-effects/ConvolverDeviceBoxAdapter";
|
|
59
61
|
export * from "./devices/audio-effects/CrusherDeviceBoxAdapter";
|
|
60
62
|
export * from "./devices/audio-effects/DattorroReverbDeviceBoxAdapter";
|
|
61
63
|
export * from "./devices/audio-effects/DelayDeviceBoxAdapter";
|
|
@@ -126,6 +128,13 @@ export * from "./modular/modules/delay";
|
|
|
126
128
|
export * from "./modular/modules/gain";
|
|
127
129
|
export * from "./modular/modules/multiplier";
|
|
128
130
|
export * from "./modular/user-interface";
|
|
131
|
+
export * from "./modulation/LfoModulatorBoxAdapter";
|
|
132
|
+
export * from "./modulation/MacroModulatorBoxAdapter";
|
|
133
|
+
export * from "./modulation/ModulationBoxAdapter";
|
|
134
|
+
export * from "./modulation/ModulatorBoxAdapter";
|
|
135
|
+
export * from "./modulation/Modulators";
|
|
136
|
+
export * from "./modulation/RandomModulatorBoxAdapter";
|
|
137
|
+
export * from "./modulation/StepsModulatorBoxAdapter";
|
|
129
138
|
export * from "./nam/NeuralAmpModelBoxAdapter";
|
|
130
139
|
export * from "./offline-renderer";
|
|
131
140
|
export * from "./preset/PresetDecoder";
|
|
@@ -158,6 +167,7 @@ export * from "./timeline/AudioContentBoxAdapter";
|
|
|
158
167
|
export * from "./timeline/ClipBoxAdapter";
|
|
159
168
|
export * from "./timeline/MarkerBoxAdapter";
|
|
160
169
|
export * from "./timeline/MarkerTrackAdapter";
|
|
170
|
+
export * from "./timeline/ParameterTracks";
|
|
161
171
|
export * from "./timeline/RegionBoxAdapter";
|
|
162
172
|
export * from "./timeline/RegionEditing";
|
|
163
173
|
export * from "./timeline/SignatureEventBoxAdapter";
|
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
|
@@ -26,6 +26,7 @@ export * from "./NoteSignal";
|
|
|
26
26
|
export * from "./NoteStreamReceiver";
|
|
27
27
|
export * from "./ParameterAdapterSet";
|
|
28
28
|
export * from "./ParameterFieldAdapters";
|
|
29
|
+
export * from "./ParameterOwner";
|
|
29
30
|
export * from "./Parsing";
|
|
30
31
|
export * from "./PeakMeterProcessorOptions";
|
|
31
32
|
export * from "./PianoModeAdapter";
|
|
@@ -58,6 +59,7 @@ export * from "./devices/audio-effects/AudioEffectComposite/AudioEffectComposite
|
|
|
58
59
|
export * from "./devices/audio-effects/AudioEffectCompositeBoxAdapter";
|
|
59
60
|
export * from "./devices/audio-effects/AutotuneDeviceBoxAdapter";
|
|
60
61
|
export * from "./devices/audio-effects/CompressorDeviceBoxAdapter";
|
|
62
|
+
export * from "./devices/audio-effects/ConvolverDeviceBoxAdapter";
|
|
61
63
|
export * from "./devices/audio-effects/CrusherDeviceBoxAdapter";
|
|
62
64
|
export * from "./devices/audio-effects/DattorroReverbDeviceBoxAdapter";
|
|
63
65
|
export * from "./devices/audio-effects/DelayDeviceBoxAdapter";
|
|
@@ -128,6 +130,13 @@ export * from "./modular/modules/delay";
|
|
|
128
130
|
export * from "./modular/modules/gain";
|
|
129
131
|
export * from "./modular/modules/multiplier";
|
|
130
132
|
export * from "./modular/user-interface";
|
|
133
|
+
export * from "./modulation/LfoModulatorBoxAdapter";
|
|
134
|
+
export * from "./modulation/MacroModulatorBoxAdapter";
|
|
135
|
+
export * from "./modulation/ModulationBoxAdapter";
|
|
136
|
+
export * from "./modulation/ModulatorBoxAdapter";
|
|
137
|
+
export * from "./modulation/Modulators";
|
|
138
|
+
export * from "./modulation/RandomModulatorBoxAdapter";
|
|
139
|
+
export * from "./modulation/StepsModulatorBoxAdapter";
|
|
131
140
|
export * from "./nam/NeuralAmpModelBoxAdapter";
|
|
132
141
|
export * from "./offline-renderer";
|
|
133
142
|
export * from "./preset/PresetDecoder";
|
|
@@ -160,6 +169,7 @@ export * from "./timeline/AudioContentBoxAdapter";
|
|
|
160
169
|
export * from "./timeline/ClipBoxAdapter";
|
|
161
170
|
export * from "./timeline/MarkerBoxAdapter";
|
|
162
171
|
export * from "./timeline/MarkerTrackAdapter";
|
|
172
|
+
export * from "./timeline/ParameterTracks";
|
|
163
173
|
export * from "./timeline/RegionBoxAdapter";
|
|
164
174
|
export * from "./timeline/RegionEditing";
|
|
165
175
|
export * from "./timeline/SignatureEventBoxAdapter";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modulators.d.ts","sourceRoot":"","sources":["../../src/modulation/Modulators.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAElB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"Modulators.d.ts","sourceRoot":"","sources":["../../src/modulation/Modulators.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAElB,iBAAiB,EAEpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAM,KAAK,EAAe,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAiB,IAAI,EAAgC,SAAS,EAAO,MAAM,kBAAkB,CAAA;AACpG,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AAGlD,yBAAiB,UAAU,CAAC;IACjB,MAAM,SAAS,GAAI,SAAS,kBAAkB,EAAE,QAAQ,MAAM,KAAG,eACkC,CAAA;IAEnG,MAAM,WAAW,GAAI,SAAS,kBAAkB,EAAE,QAAQ,MAAM,KAAG,iBACoC,CAAA;IAEvG,MAAM,WAAW,GAAI,SAAS,kBAAkB,EAAE,QAAQ,MAAM,KAAG,iBACoC,CAAA;IAEvG,MAAM,YAAY,GAAI,SAAS,kBAAkB,EAAE,QAAQ,MAAM,KAAG,kBACqC,CAAA;IAEhH,KAAY,IAAI,GAAG;QACf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAA;KAC1D,CAAA;IAEM,MAAM,KAAK,EAAE,aAAa,CAAC,IAAI,CAKrC,CAAA;IAGM,MAAM,OAAO,GAAI,SAAS,kBAAkB,EAAE,WAAW,YAAY,EAAE,MAAM,IAAI,KAAG,YAyB1F,CAAA;IAGM,MAAM,SAAS,GAAI,SAAS,kBAAkB,EAAE,WAAW,YAAY,KAAG,YACxC,CAAA;IAKlC,MAAM,YAAY,GAAI,SAAS,kBAAkB,EAC3B,YAAY,aAAa,CAAC,YAAY,CAAC,KAAG,aAAa,CAAC,YAAY,CAehG,CAAA;IAGM,MAAM,SAAS,GAAI,SAAS,kBAAkB,EAAE,YAAY,aAAa,CAAC,YAAY,CAAC,KAAG,IAMhG,CAAA;IAIM,MAAM,IAAI,GAAI,SAAS,kBAAkB,EAC3B,YAAY,aAAa,CAAC,YAAY,CAAC,EACvC,QAAQ,YAAY,KAAG,IAW3C,CAAA;IAqBM,MAAM,MAAM,GAAI,SAAS,kBAAkB,EAC3B,WAAW,YAAY,EACvB,QAAQ,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAClC,QAAO,SAAgB,KAAG,aAM3C,CAAA;CACT"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { LfoModulatorBox, MacroModulatorBox, ModulationBox, RandomModulatorBox, StepsModulatorBox } from "@opendaw/studio-boxes";
|
|
2
|
-
import { ByteArrayInput, panic, Strings, UUID } from "@opendaw/lib-std";
|
|
1
|
+
import { LfoModulatorBox, MacroModulatorBox, ModulationBox, RandomModulatorBox, StepsModulatorBox, TrackBox } from "@opendaw/studio-boxes";
|
|
2
|
+
import { ByteArrayInput, isInstanceOf, panic, Strings, UUID } from "@opendaw/lib-std";
|
|
3
3
|
/// Every caller is inside an `editing.modify`, so nothing here opens a transaction.
|
|
4
4
|
export var Modulators;
|
|
5
5
|
(function (Modulators) {
|
|
@@ -18,6 +18,15 @@ export var Modulators;
|
|
|
18
18
|
const replacement = kind.create(context);
|
|
19
19
|
modulator.assignments.pointerHub.incoming().slice()
|
|
20
20
|
.forEach((pointer) => pointer.refer(replacement.assignments));
|
|
21
|
+
// An assignment's depth lane is parented to its SOURCE, so it would die with the old box while the
|
|
22
|
+
// assignment it belongs to survives. The old kind's own parameter lanes have no meaning in the new
|
|
23
|
+
// kind and are left to the cascade.
|
|
24
|
+
modulator.tracks.pointerHub.incoming().slice()
|
|
25
|
+
.map((pointer) => pointer.box)
|
|
26
|
+
.filter((box) => isInstanceOf(box, TrackBox))
|
|
27
|
+
.filter((track) => track.target.targetVertex
|
|
28
|
+
.mapOr(vertex => isInstanceOf(vertex.box, ModulationBox), false))
|
|
29
|
+
.forEach((track) => track.tracks.refer(replacement.tracks));
|
|
21
30
|
const label = modulator.label.getValue();
|
|
22
31
|
const index = modulator.index.getValue();
|
|
23
32
|
const enabled = modulator.enabled.getValue();
|
|
@@ -8,12 +8,10 @@ export declare class RandomModulatorBoxAdapter extends ModulatorBoxAdapter<Rando
|
|
|
8
8
|
static readonly MaxLevels = 32;
|
|
9
9
|
static readonly MaxSeed = 999999;
|
|
10
10
|
readonly namedParameter: {
|
|
11
|
-
readonly loop: import("..").AutomatableParameterFieldAdapter<number>;
|
|
12
11
|
readonly rateSync: import("..").AutomatableParameterFieldAdapter<number>;
|
|
13
12
|
readonly rateAbsolute: import("..").AutomatableParameterFieldAdapter<number>;
|
|
14
13
|
readonly phase: import("..").AutomatableParameterFieldAdapter<number>;
|
|
15
14
|
readonly smooth: import("..").AutomatableParameterFieldAdapter<number>;
|
|
16
|
-
readonly levels: import("..").AutomatableParameterFieldAdapter<number>;
|
|
17
15
|
};
|
|
18
16
|
constructor(context: BoxAdaptersContext, box: RandomModulatorBox);
|
|
19
17
|
get loop(): int;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RandomModulatorBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/modulation/RandomModulatorBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,GAAG,EAAiB,SAAS,EAAe,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AAGzD,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,kBAAkB,CAAC;;IAClF,MAAM,CAAC,QAAQ,CAAC,OAAO,MAAK;IAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,MAAK;IAC9B,MAAM,CAAC,QAAQ,CAAC,OAAO,UAAS;IAEhC,QAAQ,CAAC,cAAc
|
|
1
|
+
{"version":3,"file":"RandomModulatorBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/modulation/RandomModulatorBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,GAAG,EAAiB,SAAS,EAAe,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AAGzD,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,kBAAkB,CAAC;;IAClF,MAAM,CAAC,QAAQ,CAAC,OAAO,MAAK;IAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,MAAK;IAC9B,MAAM,CAAC,QAAQ,CAAC,OAAO,UAAS;IAEhC,QAAQ,CAAC,cAAc;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB;IAMhE,IAAI,IAAI,IAAI,GAAG,CAAkC;IAEjD,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS;IAS3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAUhC,MAAM,IAAI,IAAI;CA6BjB"}
|
|
@@ -3,7 +3,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
3
3
|
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");
|
|
4
4
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
5
|
};
|
|
6
|
-
var _RandomModulatorBoxAdapter_instances,
|
|
6
|
+
var _RandomModulatorBoxAdapter_instances, _RandomModulatorBoxAdapter_localIndex, _RandomModulatorBoxAdapter_quantize, _RandomModulatorBoxAdapter_wrapParameters;
|
|
7
7
|
import { StringMapping, ValueMapping } from "@opendaw/lib-std";
|
|
8
8
|
import { LfoModulatorBoxAdapter } from "./LfoModulatorBoxAdapter";
|
|
9
9
|
import { ModulatorBoxAdapter } from "./ModulatorBoxAdapter";
|
|
@@ -35,9 +35,9 @@ export class RandomModulatorBoxAdapter extends ModulatorBoxAdapter {
|
|
|
35
35
|
const ramp = Math.min(1.0, (step - index) / smooth);
|
|
36
36
|
return previous + (current - previous) * ramp * ramp * (3.0 - 2.0 * ramp);
|
|
37
37
|
}
|
|
38
|
-
reseed() { this.box.seed.setValue(Math.floor(Math.random() *
|
|
38
|
+
reseed() { this.box.seed.setValue(Math.floor(Math.random() * RandomModulatorBoxAdapter.MaxSeed)); }
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
_RandomModulatorBoxAdapter_instances = new WeakSet(), _RandomModulatorBoxAdapter_localIndex = function _RandomModulatorBoxAdapter_localIndex(index) {
|
|
41
41
|
const length = this.loop;
|
|
42
42
|
return length > 0 ? ((index % length) + length) % length : index | 0;
|
|
43
43
|
}, _RandomModulatorBoxAdapter_quantize = function _RandomModulatorBoxAdapter_quantize(value) {
|
|
@@ -49,12 +49,10 @@ _a = RandomModulatorBoxAdapter, _RandomModulatorBoxAdapter_instances = new WeakS
|
|
|
49
49
|
return Math.min(steps, Math.max(0, Math.floor((value + 1.0) * 0.5 * steps + 0.5))) / steps * 2.0 - 1.0;
|
|
50
50
|
}, _RandomModulatorBoxAdapter_wrapParameters = function _RandomModulatorBoxAdapter_wrapParameters(box) {
|
|
51
51
|
return {
|
|
52
|
-
loop: this.parametric.createParameter(box.loop, ValueMapping.linearInteger(0, _a.MaxLoop), StringMapping.numeric({ unit: "" }), "Loop"),
|
|
53
52
|
rateSync: this.parametric.createParameter(box.rateSync, ValueMapping.linearInteger(0, LfoModulatorBoxAdapter.RateStrings.length - 1), StringMapping.indices("", LfoModulatorBoxAdapter.RateStrings), "Sync"),
|
|
54
53
|
rateAbsolute: this.parametric.createParameter(box.rateAbsolute, ValueMapping.powerByCenter(LfoModulatorBoxAdapter.CenterAbsoluteRate, 0.0, LfoModulatorBoxAdapter.MaxAbsoluteRate), StringMapping.numeric({ unit: "Hz", fractionDigits: 2 }), "Free"),
|
|
55
54
|
phase: this.parametric.createParameter(box.phase, ValueMapping.unipolar(), StringMapping.percent({ fractionDigits: 0 }), "Phase"),
|
|
56
|
-
smooth: this.parametric.createParameter(box.smooth, ValueMapping.unipolar(), StringMapping.percent({ fractionDigits: 0 }), "Smooth")
|
|
57
|
-
levels: this.parametric.createParameter(box.levels, ValueMapping.linearInteger(0, _a.MaxLevels), StringMapping.numeric({ unit: "" }), "Levels")
|
|
55
|
+
smooth: this.parametric.createParameter(box.smooth, ValueMapping.unipolar(), StringMapping.percent({ fractionDigits: 0 }), "Smooth")
|
|
58
56
|
};
|
|
59
57
|
};
|
|
60
58
|
RandomModulatorBoxAdapter.MaxLoop = 64;
|
|
@@ -20,12 +20,10 @@ export declare class StepsModulatorBoxAdapter extends ModulatorBoxAdapter<StepsM
|
|
|
20
20
|
static readonly MaxSteps = 64;
|
|
21
21
|
static readonly DirectionStrings: ReadonlyArray<string>;
|
|
22
22
|
readonly namedParameter: {
|
|
23
|
-
readonly count: import("..").AutomatableParameterFieldAdapter<number>;
|
|
24
23
|
readonly rateSync: import("..").AutomatableParameterFieldAdapter<number>;
|
|
25
24
|
readonly rateAbsolute: import("..").AutomatableParameterFieldAdapter<number>;
|
|
26
25
|
readonly phase: import("..").AutomatableParameterFieldAdapter<number>;
|
|
27
26
|
readonly smooth: import("..").AutomatableParameterFieldAdapter<number>;
|
|
28
|
-
readonly direction: import("..").AutomatableParameterFieldAdapter<number>;
|
|
29
27
|
};
|
|
30
28
|
constructor(context: BoxAdaptersContext, box: StepsModulatorBox);
|
|
31
29
|
get count(): int;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepsModulatorBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/modulation/StepsModulatorBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAC,GAAG,EAAiB,SAAS,EAAe,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AAGzD,oBAAY,cAAc;IAAE,OAAO,IAAA;IAAE,QAAQ,IAAA;IAAE,QAAQ,IAAA;IAAE,SAAS,IAAA;IAAE,MAAM,IAAA;CAAC;AAE3E,MAAM,MAAM,SAAS,GAAG;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,GAAG,CAAA;CAAC,CAAA;AAEhE,qBAAa,wBAAyB,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;;IAChF,MAAM,CAAC,QAAQ,CAAC,QAAQ,MAAK;IAC7B,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAA8D;IAErH,QAAQ,CAAC,cAAc
|
|
1
|
+
{"version":3,"file":"StepsModulatorBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/modulation/StepsModulatorBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAC,GAAG,EAAiB,SAAS,EAAe,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AAGzD,oBAAY,cAAc;IAAE,OAAO,IAAA;IAAE,QAAQ,IAAA;IAAE,QAAQ,IAAA;IAAE,SAAS,IAAA;IAAE,MAAM,IAAA;CAAC;AAE3E,MAAM,MAAM,SAAS,GAAG;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,GAAG,CAAA;CAAC,CAAA;AAEhE,qBAAa,wBAAyB,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;;IAChF,MAAM,CAAC,QAAQ,CAAC,QAAQ,MAAK;IAC7B,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAA8D;IAErH,QAAQ,CAAC,cAAc;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,iBAAiB;IAM/D,IAAI,KAAK,IAAI,GAAG,CAAmC;IACnD,IAAI,KAAK,IAAI,aAAa,CAAC,YAAY,CAAC,CAAiC;IAGzE,IAAI,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAerC;IAED,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS;IA6BtD,IAAI,OAAO,IAAI,SAAS,CAAiD;IAEzE,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAElC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAElC,KAAK,IAAI,IAAI;IAKb,SAAS,IAAI,IAAI;IAEjB,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI;CA2B5B"}
|
|
@@ -37,6 +37,7 @@ export class StepsModulatorBoxAdapter extends ModulatorBoxAdapter {
|
|
|
37
37
|
return count < 3
|
|
38
38
|
? [{ ascending: true, from: 0, to: count }]
|
|
39
39
|
: [{ ascending: true, from: 0, to: count - 1 }, { ascending: false, from: 1, to: count }];
|
|
40
|
+
// Random reorders per cycle, so there is no one pass to draw: the display shows a forward one.
|
|
40
41
|
default:
|
|
41
42
|
return [{ ascending: true, from: 0, to: count }];
|
|
42
43
|
}
|
|
@@ -88,12 +89,10 @@ _a = StepsModulatorBoxAdapter, _StepsModulatorBoxAdapter_instances = new WeakSet
|
|
|
88
89
|
return this.steps.slice(0, Math.max(1, Math.min(this.count, _a.MaxSteps)));
|
|
89
90
|
}, _StepsModulatorBoxAdapter_wrapParameters = function _StepsModulatorBoxAdapter_wrapParameters(box) {
|
|
90
91
|
return {
|
|
91
|
-
count: this.parametric.createParameter(box.count, ValueMapping.linearInteger(1, _a.MaxSteps), StringMapping.numeric({ unit: "" }), "Steps"),
|
|
92
92
|
rateSync: this.parametric.createParameter(box.rateSync, ValueMapping.linearInteger(0, LfoModulatorBoxAdapter.RateStrings.length - 1), StringMapping.indices("", LfoModulatorBoxAdapter.RateStrings), "Sync"),
|
|
93
93
|
rateAbsolute: this.parametric.createParameter(box.rateAbsolute, ValueMapping.powerByCenter(LfoModulatorBoxAdapter.CenterAbsoluteRate, 0.0, LfoModulatorBoxAdapter.MaxAbsoluteRate), StringMapping.numeric({ unit: "Hz", fractionDigits: 2 }), "Free"),
|
|
94
94
|
phase: this.parametric.createParameter(box.phase, ValueMapping.unipolar(), StringMapping.percent({ fractionDigits: 0 }), "Phase"),
|
|
95
|
-
smooth: this.parametric.createParameter(box.smooth, ValueMapping.unipolar(), StringMapping.percent({ fractionDigits: 0 }), "Smooth")
|
|
96
|
-
direction: this.parametric.createParameter(box.direction, ValueMapping.linearInteger(0, _a.DirectionStrings.length - 1), StringMapping.indices("", _a.DirectionStrings), "Mode")
|
|
95
|
+
smooth: this.parametric.createParameter(box.smooth, ValueMapping.unipolar(), StringMapping.percent({ fractionDigits: 0 }), "Smooth")
|
|
97
96
|
};
|
|
98
97
|
};
|
|
99
98
|
StepsModulatorBoxAdapter.MaxSteps = 64;
|
package/dist/protocols.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export interface EngineCommands extends Terminable {
|
|
|
20
20
|
noteSignal(signal: NoteSignal): void;
|
|
21
21
|
/** @internal */
|
|
22
22
|
ignoreNoteRegion(uuid: UUID.Bytes): void;
|
|
23
|
+
/** @internal */
|
|
24
|
+
suspendAutomation(uuid: UUID.Bytes): void;
|
|
23
25
|
scheduleClipPlay(clipIds: ReadonlyArray<UUID.Bytes>): void;
|
|
24
26
|
scheduleClipStop(trackIds: ReadonlyArray<UUID.Bytes>): void;
|
|
25
27
|
/** @internal */
|
package/dist/protocols.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAE1C,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;CAAE,CAAA;AAEnF,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,gBAAgB;IAChB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,gBAAgB;IAChB,aAAa,IAAI,IAAI,CAAA;IACrB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,IAAI,IAAI,CAAA;IACb,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,gBAAgB;IAChB,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACxC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC3D,gBAAgB;IAChB,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC7D,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACnD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IACtE,gBAAgB;IAChB,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;CACpE;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAClD,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACpC,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,IAAI,IAAI,CAAA;CAChB"}
|
|
1
|
+
{"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAE1C,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;CAAE,CAAA;AAEnF,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,gBAAgB;IAChB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,gBAAgB;IAChB,aAAa,IAAI,IAAI,CAAA;IACrB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,IAAI,IAAI,CAAA;IACb,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,gBAAgB;IAChB,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACxC,gBAAgB;IAChB,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACzC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC3D,gBAAgB;IAChB,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC7D,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACnD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IACtE,gBAAgB;IAChB,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;CACpE;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAClD,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACpC,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,IAAI,IAAI,CAAA;CAChB"}
|
|
@@ -18,6 +18,7 @@ export declare class TrackBoxAdapter implements BoxAdapter {
|
|
|
18
18
|
get targetName(): Option<string>;
|
|
19
19
|
terminate(): void;
|
|
20
20
|
get audioUnit(): AudioUnitBox;
|
|
21
|
+
get optAudioUnit(): Option<AudioUnitBox>;
|
|
21
22
|
get target(): PointerField<Pointers.Automation>;
|
|
22
23
|
get clips(): TrackClips;
|
|
23
24
|
get regions(): TrackRegions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/TrackBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"TrackBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/TrackBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,GAAG,EAEH,QAAQ,EACR,MAAM,EAEN,YAAY,EAGZ,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,OAAO,EAAE,YAAY,EAAO,UAAU,EAAE,YAAY,EAAc,MAAM,kBAAkB,CAAA;AAClG,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;AAI3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,sBAAsB,CAAA;AAG3E,OAAO,EAAC,YAAY,EAAiB,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC3E,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,EAoB3B;IAED,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,CAE/B;IA0CD,SAAS;IAET,IAAI,SAAS,IAAI,YAAY,CAE5B;IAED,IAAI,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,CAGvC;IAED,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;IACjD,IAAI,SAAS,IAAI,GAAG,CAAoC;IACxD,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAmC;IAE3D,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,OAAO;IAgBlE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS;IAiCvD,IAAI,iBAAiB,IAAI,MAAM,CAAC,MAAM,CAAC,CAWtC;CAsCJ"}
|
|
@@ -10,16 +10,18 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
12
|
var _TrackBoxAdapter_instances, _TrackBoxAdapter_context, _TrackBoxAdapter_box, _TrackBoxAdapter_terminator, _TrackBoxAdapter_clips, _TrackBoxAdapter_regions, _TrackBoxAdapter_listIndex, _TrackBoxAdapter_catchupAndSubscribeTargetName, _TrackBoxAdapter_catchupAndSubscribeTargetControlName, _TrackBoxAdapter_resolveOwnerDeviceBox;
|
|
13
|
-
import {
|
|
13
|
+
import { 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";
|
|
16
16
|
import { TrackClips } from "./TrackClips";
|
|
17
17
|
import { TrackRegions } from "./TrackRegions";
|
|
18
18
|
import { AudioUnitBoxAdapter } from "../audio-unit/AudioUnitBoxAdapter";
|
|
19
|
+
import { ParameterOwner } from "../ParameterOwner";
|
|
20
|
+
import { isModulatorBoxAdapter } from "../modulation/ModulatorBoxAdapter";
|
|
19
21
|
import { TrackType } from "./TrackType";
|
|
20
22
|
import { ValueClipBoxAdapter } from "./clip/ValueClipBoxAdapter";
|
|
21
23
|
import { ValueRegionBoxAdapter } from "./region/ValueRegionBoxAdapter";
|
|
22
|
-
import { AudioUnitBox } from "@opendaw/studio-boxes";
|
|
24
|
+
import { AudioUnitBox, ModulationBox } from "@opendaw/studio-boxes";
|
|
23
25
|
import { Pointers } from "@opendaw/studio-enums";
|
|
24
26
|
export class TrackBoxAdapter {
|
|
25
27
|
constructor(context, box) {
|
|
@@ -84,33 +86,15 @@ export class TrackBoxAdapter {
|
|
|
84
86
|
});
|
|
85
87
|
}
|
|
86
88
|
get targetName() {
|
|
87
|
-
return __classPrivateFieldGet(this, _TrackBoxAdapter_box, "f").target.targetVertex.flatMap(
|
|
88
|
-
const box = targetVertex.box;
|
|
89
|
-
if (box instanceof AudioUnitBox) {
|
|
90
|
-
const adapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.adapterFor(box, AudioUnitBoxAdapter);
|
|
91
|
-
return adapter.input.label;
|
|
92
|
-
}
|
|
93
|
-
const optAdapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.optAdapter(box);
|
|
94
|
-
if (optAdapter.nonEmpty()) {
|
|
95
|
-
const adapter = optAdapter.unwrap();
|
|
96
|
-
if ("labelField" in adapter && adapter.labelField instanceof StringField) {
|
|
97
|
-
return Option.wrap(adapter.labelField.getValue());
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
const ownerAdapter = __classPrivateFieldGet(this, _TrackBoxAdapter_instances, "m", _TrackBoxAdapter_resolveOwnerDeviceBox).call(this, box)
|
|
101
|
-
.flatMap(owner => __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.optAdapter(owner));
|
|
102
|
-
if (ownerAdapter.nonEmpty()) {
|
|
103
|
-
const adapter = ownerAdapter.unwrap();
|
|
104
|
-
if ("labelField" in adapter && adapter.labelField instanceof StringField) {
|
|
105
|
-
return Option.wrap(adapter.labelField.getValue());
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return Option.wrap(box.name);
|
|
109
|
-
});
|
|
89
|
+
return __classPrivateFieldGet(this, _TrackBoxAdapter_box, "f").target.targetVertex.flatMap(vertex => ParameterOwner.nameOf(__classPrivateFieldGet(this, _TrackBoxAdapter_context, "f"), vertex));
|
|
110
90
|
}
|
|
111
91
|
terminate() { __classPrivateFieldGet(this, _TrackBoxAdapter_terminator, "f").terminate(); }
|
|
112
92
|
get audioUnit() {
|
|
113
|
-
return
|
|
93
|
+
return this.optAudioUnit.unwrap("track has no audioUnit");
|
|
94
|
+
}
|
|
95
|
+
get optAudioUnit() {
|
|
96
|
+
return __classPrivateFieldGet(this, _TrackBoxAdapter_box, "f").tracks.targetVertex
|
|
97
|
+
.flatMap(vertex => vertex.box instanceof AudioUnitBox ? Option.wrap(vertex.box) : Option.None);
|
|
114
98
|
}
|
|
115
99
|
get target() { return __classPrivateFieldGet(this, _TrackBoxAdapter_box, "f").target; }
|
|
116
100
|
get clips() { return __classPrivateFieldGet(this, _TrackBoxAdapter_clips, "f"); }
|
|
@@ -195,7 +179,17 @@ _TrackBoxAdapter_context = new WeakMap(), _TrackBoxAdapter_box = new WeakMap(),
|
|
|
195
179
|
const targetVertex = __classPrivateFieldGet(this, _TrackBoxAdapter_box, "f").target.targetVertex;
|
|
196
180
|
if (targetVertex.nonEmpty()) {
|
|
197
181
|
const box = targetVertex.unwrap().box;
|
|
198
|
-
if (box
|
|
182
|
+
if (isInstanceOf(box, ModulationBox)) {
|
|
183
|
+
const vertex = targetVertex.unwrap();
|
|
184
|
+
const update = () => observer(ParameterOwner.nameOf(__classPrivateFieldGet(this, _TrackBoxAdapter_context, "f"), vertex));
|
|
185
|
+
update();
|
|
186
|
+
return box.source.targetVertex
|
|
187
|
+
.flatMap(source => __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.optAdapter(source.box))
|
|
188
|
+
.mapOr(adapter => isModulatorBoxAdapter(adapter)
|
|
189
|
+
? adapter.labelField.subscribe(update)
|
|
190
|
+
: Terminable.Empty, Terminable.Empty);
|
|
191
|
+
}
|
|
192
|
+
if (isInstanceOf(box, AudioUnitBox)) {
|
|
199
193
|
const adapter = __classPrivateFieldGet(this, _TrackBoxAdapter_context, "f").boxAdapters.adapterFor(box, AudioUnitBoxAdapter);
|
|
200
194
|
return adapter.input.catchupAndSubscribeLabelChange(option => observer(option));
|
|
201
195
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendaw/studio-adapters",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"license": "LGPL-3.0-or-later",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -25,19 +25,19 @@
|
|
|
25
25
|
"pregenerate-all-boxes": "npm run build -w @opendaw/studio-forge-boxes && npm run build -w @opendaw/studio-boxes"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@opendaw/lib-box": "^0.0.
|
|
29
|
-
"@opendaw/lib-dsp": "^0.0.
|
|
30
|
-
"@opendaw/lib-fusion": "^0.0.
|
|
31
|
-
"@opendaw/lib-midi": "^0.0.
|
|
32
|
-
"@opendaw/lib-runtime": "^0.0.
|
|
33
|
-
"@opendaw/lib-std": "^0.0.
|
|
34
|
-
"@opendaw/studio-boxes": "^0.0.
|
|
35
|
-
"@opendaw/studio-enums": "^0.1.
|
|
28
|
+
"@opendaw/lib-box": "^0.0.93",
|
|
29
|
+
"@opendaw/lib-dsp": "^0.0.92",
|
|
30
|
+
"@opendaw/lib-fusion": "^0.0.102",
|
|
31
|
+
"@opendaw/lib-midi": "^0.0.73",
|
|
32
|
+
"@opendaw/lib-runtime": "^0.0.85",
|
|
33
|
+
"@opendaw/lib-std": "^0.0.84",
|
|
34
|
+
"@opendaw/studio-boxes": "^0.0.108",
|
|
35
|
+
"@opendaw/studio-enums": "^0.1.1",
|
|
36
36
|
"soundfont2": "^0.5.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@opendaw/eslint-config": "^0.0.28",
|
|
40
40
|
"@opendaw/typescript-config": "^0.0.32"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "b0c31f349354ad6ecbc5d4724b041eaae9181251"
|
|
43
43
|
}
|