@opendaw/studio-adapters 0.0.80 → 0.0.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BoxAdapters.d.ts.map +1 -1
- package/dist/BoxAdapters.js +2 -0
- package/dist/VaryingTempoMap.d.ts +3 -2
- package/dist/VaryingTempoMap.d.ts.map +1 -1
- package/dist/VaryingTempoMap.js +99 -28
- package/dist/devices/audio-effects/NeuralAmpDeviceBoxAdapter.d.ts +5 -2
- package/dist/devices/audio-effects/NeuralAmpDeviceBoxAdapter.d.ts.map +1 -1
- package/dist/devices/audio-effects/NeuralAmpDeviceBoxAdapter.js +16 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/nam/NeuralAmpModelBoxAdapter.d.ts +17 -0
- package/dist/nam/NeuralAmpModelBoxAdapter.d.ts.map +1 -0
- package/dist/nam/NeuralAmpModelBoxAdapter.js +30 -0
- package/dist/project/ProjectUtils.js +2 -2
- package/dist/protocols.d.ts +5 -0
- package/dist/protocols.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAEL,MAAM,EAIN,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAEL,MAAM,EAIN,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;AAsG5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAwBvC,qBAAa,WAAY,YAAW,UAAU;;gBAO9B,OAAO,EAAE,kBAAkB;IAkBvC,SAAS,IAAI,IAAI;IAMjB,UAAU,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IAkBnG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;CAkE3C"}
|
package/dist/BoxAdapters.js
CHANGED
|
@@ -65,6 +65,7 @@ import { VelocityDeviceBoxAdapter } from "./devices/midi-effects/VelocityDeviceB
|
|
|
65
65
|
import { TidalDeviceBoxAdapter } from "./devices/audio-effects/TidalDeviceBoxAdapter";
|
|
66
66
|
import { DattorroReverbDeviceBoxAdapter } from "./devices/audio-effects/DattorroReverbDeviceBoxAdapter";
|
|
67
67
|
import { NeuralAmpDeviceBoxAdapter } from "./devices/audio-effects/NeuralAmpDeviceBoxAdapter";
|
|
68
|
+
import { NeuralAmpModelBoxAdapter } from "./nam/NeuralAmpModelBoxAdapter";
|
|
68
69
|
import { AudioPitchStretchBoxAdapter } from "./audio/AudioPitchStretchBoxAdapter";
|
|
69
70
|
import { TransientMarkerBoxAdapter } from "./audio/TransientMarkerBoxAdapter";
|
|
70
71
|
import { WarpMarkerBoxAdapter } from "./audio/WarpMarkerBoxAdapter";
|
|
@@ -152,6 +153,7 @@ _BoxAdapters_context = new WeakMap(), _BoxAdapters_adapters = new WeakMap(), _Bo
|
|
|
152
153
|
visitModuleMultiplierBox: (box) => new ModuleMultiplierAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
153
154
|
visitNanoDeviceBox: (box) => new NanoDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
154
155
|
visitNeuralAmpDeviceBox: (box) => new NeuralAmpDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
156
|
+
visitNeuralAmpModelBox: (box) => new NeuralAmpModelBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
155
157
|
visitNoteClipBox: (box) => new NoteClipBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
156
158
|
visitNoteEventBox: (box) => new NoteEventBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
157
159
|
visitNoteEventCollectionBox: (box) => new NoteEventCollectionBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { bpm, ppqn, seconds, TempoMap } from "@opendaw/lib-dsp";
|
|
2
|
-
import { Observer, Subscription } from "@opendaw/lib-std";
|
|
2
|
+
import { Observer, Subscription, Terminable } from "@opendaw/lib-std";
|
|
3
3
|
import { TimelineBoxAdapter } from "./timeline/TimelineBoxAdapter";
|
|
4
4
|
/**
|
|
5
5
|
* TempoMap implementation that handles varying tempo (tempo automation).
|
|
6
6
|
* Steps through at TempoChangeGrid intervals to match BlockRenderer behavior.
|
|
7
7
|
*/
|
|
8
|
-
export declare class VaryingTempoMap implements TempoMap {
|
|
8
|
+
export declare class VaryingTempoMap implements TempoMap, Terminable {
|
|
9
9
|
#private;
|
|
10
10
|
constructor(adapter: TimelineBoxAdapter);
|
|
11
|
+
terminate(): void;
|
|
11
12
|
getTempoAt(position: ppqn): bpm;
|
|
12
13
|
ppqnToSeconds(position: ppqn): seconds;
|
|
13
14
|
secondsToPPQN(time: seconds): ppqn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VaryingTempoMap.d.ts","sourceRoot":"","sources":["../src/VaryingTempoMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAQ,OAAO,EAAmB,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACpF,OAAO,
|
|
1
|
+
{"version":3,"file":"VaryingTempoMap.d.ts","sourceRoot":"","sources":["../src/VaryingTempoMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAQ,OAAO,EAAmB,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACpF,OAAO,EAGH,QAAQ,EAER,YAAY,EACZ,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAA;AAIhE;;;GAGG;AACH,qBAAa,eAAgB,YAAW,QAAQ,EAAE,UAAU;;gBAM5C,OAAO,EAAE,kBAAkB;IAQvC,SAAS,IAAI,IAAI;IAkCjB,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,GAAG;IAQ/B,aAAa,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO;IAwCtC,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IA6ClC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO;IAKxD,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAO9D,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY;CAQxD"}
|
package/dist/VaryingTempoMap.js
CHANGED
|
@@ -9,9 +9,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _VaryingTempoMap_instances, _VaryingTempoMap_adapter, _VaryingTempoMap_absoluteSecondsToPPQN;
|
|
12
|
+
var _VaryingTempoMap_instances, _VaryingTempoMap_terminator, _VaryingTempoMap_adapter, _VaryingTempoMap_ppqnCache, _VaryingTempoMap_secondsCache, _VaryingTempoMap_rebuildCache, _VaryingTempoMap_ppqnToSecondsPositive, _VaryingTempoMap_absoluteSecondsToPPQN;
|
|
13
13
|
import { PPQN, TempoChangeGrid } from "@opendaw/lib-dsp";
|
|
14
|
-
import { quantizeCeil, Terminator } from "@opendaw/lib-std";
|
|
14
|
+
import { BinarySearch, NumberComparator, quantizeCeil, Terminator } from "@opendaw/lib-std";
|
|
15
15
|
/**
|
|
16
16
|
* TempoMap implementation that handles varying tempo (tempo automation).
|
|
17
17
|
* Steps through at TempoChangeGrid intervals to match BlockRenderer behavior.
|
|
@@ -19,8 +19,15 @@ import { quantizeCeil, Terminator } from "@opendaw/lib-std";
|
|
|
19
19
|
export class VaryingTempoMap {
|
|
20
20
|
constructor(adapter) {
|
|
21
21
|
_VaryingTempoMap_instances.add(this);
|
|
22
|
+
_VaryingTempoMap_terminator.set(this, new Terminator());
|
|
22
23
|
_VaryingTempoMap_adapter.set(this, void 0);
|
|
24
|
+
_VaryingTempoMap_ppqnCache.set(this, []);
|
|
25
|
+
_VaryingTempoMap_secondsCache.set(this, []);
|
|
23
26
|
__classPrivateFieldSet(this, _VaryingTempoMap_adapter, adapter, "f");
|
|
27
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_terminator, "f").ownAll(adapter.box.bpm.subscribe(() => __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_rebuildCache).call(this)), adapter.catchupAndSubscribeTempoAutomation(() => __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_rebuildCache).call(this)));
|
|
28
|
+
}
|
|
29
|
+
terminate() {
|
|
30
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_terminator, "f").terminate();
|
|
24
31
|
}
|
|
25
32
|
getTempoAt(position) {
|
|
26
33
|
const storageBpm = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").box.bpm.getValue();
|
|
@@ -28,9 +35,9 @@ export class VaryingTempoMap {
|
|
|
28
35
|
}
|
|
29
36
|
ppqnToSeconds(position) {
|
|
30
37
|
if (position < 0) {
|
|
31
|
-
return -this.
|
|
38
|
+
return -__classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_ppqnToSecondsPositive).call(this, -position);
|
|
32
39
|
}
|
|
33
|
-
return this.
|
|
40
|
+
return __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_ppqnToSecondsPositive).call(this, position);
|
|
34
41
|
}
|
|
35
42
|
secondsToPPQN(time) {
|
|
36
43
|
return __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_absoluteSecondsToPPQN).call(this, time);
|
|
@@ -39,32 +46,12 @@ export class VaryingTempoMap {
|
|
|
39
46
|
if (fromPPQN >= toPPQN) {
|
|
40
47
|
return 0.0;
|
|
41
48
|
}
|
|
42
|
-
|
|
43
|
-
const tempoEvents = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").tempoTrackEvents;
|
|
44
|
-
if (tempoEvents.isEmpty()) {
|
|
45
|
-
return PPQN.pulsesToSeconds(toPPQN - fromPPQN, storageBpm);
|
|
46
|
-
}
|
|
47
|
-
const collection = tempoEvents.unwrap();
|
|
48
|
-
if (collection.events.isEmpty()) {
|
|
49
|
-
return PPQN.pulsesToSeconds(toPPQN - fromPPQN, storageBpm);
|
|
50
|
-
}
|
|
51
|
-
let totalSeconds = 0.0;
|
|
52
|
-
let currentPPQN = fromPPQN;
|
|
53
|
-
while (currentPPQN < toPPQN) {
|
|
54
|
-
const currentBpm = collection.valueAt(currentPPQN, storageBpm);
|
|
55
|
-
const nextGrid = quantizeCeil(currentPPQN, TempoChangeGrid);
|
|
56
|
-
const segmentEnd = nextGrid <= currentPPQN ? nextGrid + TempoChangeGrid : nextGrid;
|
|
57
|
-
const actualEnd = Math.min(segmentEnd, toPPQN);
|
|
58
|
-
totalSeconds += PPQN.pulsesToSeconds(actualEnd - currentPPQN, currentBpm);
|
|
59
|
-
currentPPQN = actualEnd;
|
|
60
|
-
}
|
|
61
|
-
return totalSeconds;
|
|
49
|
+
return __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_ppqnToSecondsPositive).call(this, toPPQN) - __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_ppqnToSecondsPositive).call(this, fromPPQN);
|
|
62
50
|
}
|
|
63
51
|
intervalToPPQN(fromSeconds, toSeconds) {
|
|
64
52
|
if (fromSeconds >= toSeconds) {
|
|
65
53
|
return 0.0;
|
|
66
54
|
}
|
|
67
|
-
// Find PPQN positions for both absolute times, return the difference
|
|
68
55
|
const fromPPQN = __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_absoluteSecondsToPPQN).call(this, fromSeconds);
|
|
69
56
|
const toPPQN = __classPrivateFieldGet(this, _VaryingTempoMap_instances, "m", _VaryingTempoMap_absoluteSecondsToPPQN).call(this, toSeconds);
|
|
70
57
|
return toPPQN - fromPPQN;
|
|
@@ -75,7 +62,78 @@ export class VaryingTempoMap {
|
|
|
75
62
|
return terminator;
|
|
76
63
|
}
|
|
77
64
|
}
|
|
78
|
-
_VaryingTempoMap_adapter = new WeakMap(), _VaryingTempoMap_instances = new WeakSet(),
|
|
65
|
+
_VaryingTempoMap_terminator = new WeakMap(), _VaryingTempoMap_adapter = new WeakMap(), _VaryingTempoMap_ppqnCache = new WeakMap(), _VaryingTempoMap_secondsCache = new WeakMap(), _VaryingTempoMap_instances = new WeakSet(), _VaryingTempoMap_rebuildCache = function _VaryingTempoMap_rebuildCache() {
|
|
66
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f").length = 0;
|
|
67
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f").length = 0;
|
|
68
|
+
const tempoEvents = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").tempoTrackEvents;
|
|
69
|
+
if (tempoEvents.isEmpty()) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const collection = tempoEvents.unwrap();
|
|
73
|
+
if (collection.events.isEmpty()) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const events = collection.events.asArray();
|
|
77
|
+
const storageBpm = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").box.bpm.getValue();
|
|
78
|
+
const entries = [{ ppqn: 0, seconds: 0, bpm: collection.valueAt(0, storageBpm) }];
|
|
79
|
+
let accumulatedSeconds = 0.0;
|
|
80
|
+
let currentPPQN = 0.0;
|
|
81
|
+
for (const event of events) {
|
|
82
|
+
const eventPosition = event.position;
|
|
83
|
+
if (eventPosition <= currentPPQN) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
while (currentPPQN < eventPosition) {
|
|
87
|
+
const currentBpm = collection.valueAt(currentPPQN, storageBpm);
|
|
88
|
+
const nextGrid = quantizeCeil(currentPPQN, TempoChangeGrid);
|
|
89
|
+
const segmentEnd = nextGrid <= currentPPQN ? nextGrid + TempoChangeGrid : nextGrid;
|
|
90
|
+
const actualEnd = Math.min(segmentEnd, eventPosition);
|
|
91
|
+
accumulatedSeconds += PPQN.pulsesToSeconds(actualEnd - currentPPQN, currentBpm);
|
|
92
|
+
currentPPQN = actualEnd;
|
|
93
|
+
}
|
|
94
|
+
entries.push({ ppqn: eventPosition, seconds: accumulatedSeconds, bpm: collection.valueAt(eventPosition, storageBpm) });
|
|
95
|
+
}
|
|
96
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f").push(...entries);
|
|
97
|
+
const sortedBySeconds = entries.slice().sort((a, b) => a.seconds - b.seconds);
|
|
98
|
+
__classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f").push(...sortedBySeconds);
|
|
99
|
+
}, _VaryingTempoMap_ppqnToSecondsPositive = function _VaryingTempoMap_ppqnToSecondsPositive(position) {
|
|
100
|
+
if (position <= 0) {
|
|
101
|
+
return 0.0;
|
|
102
|
+
}
|
|
103
|
+
const storageBpm = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").box.bpm.getValue();
|
|
104
|
+
const tempoEvents = __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").tempoTrackEvents;
|
|
105
|
+
if (tempoEvents.isEmpty()) {
|
|
106
|
+
return PPQN.pulsesToSeconds(position, storageBpm);
|
|
107
|
+
}
|
|
108
|
+
const collection = tempoEvents.unwrap();
|
|
109
|
+
if (collection.events.isEmpty()) {
|
|
110
|
+
return PPQN.pulsesToSeconds(position, storageBpm);
|
|
111
|
+
}
|
|
112
|
+
let startPPQN = 0.0;
|
|
113
|
+
let startSeconds = 0.0;
|
|
114
|
+
if (__classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f").length > 0) {
|
|
115
|
+
const index = BinarySearch.rightMostMapped(__classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f"), position, NumberComparator, (entry) => entry.ppqn);
|
|
116
|
+
if (index >= 0) {
|
|
117
|
+
const entry = __classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f")[index];
|
|
118
|
+
startPPQN = entry.ppqn;
|
|
119
|
+
startSeconds = entry.seconds;
|
|
120
|
+
if (index === __classPrivateFieldGet(this, _VaryingTempoMap_ppqnCache, "f").length - 1) {
|
|
121
|
+
return startSeconds + PPQN.pulsesToSeconds(position - startPPQN, entry.bpm);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
let accumulatedSeconds = startSeconds;
|
|
126
|
+
let currentPPQN = startPPQN;
|
|
127
|
+
while (currentPPQN < position) {
|
|
128
|
+
const currentBpm = collection.valueAt(currentPPQN, storageBpm);
|
|
129
|
+
const nextGrid = quantizeCeil(currentPPQN, TempoChangeGrid);
|
|
130
|
+
const segmentEnd = nextGrid <= currentPPQN ? nextGrid + TempoChangeGrid : nextGrid;
|
|
131
|
+
const actualEnd = Math.min(segmentEnd, position);
|
|
132
|
+
accumulatedSeconds += PPQN.pulsesToSeconds(actualEnd - currentPPQN, currentBpm);
|
|
133
|
+
currentPPQN = actualEnd;
|
|
134
|
+
}
|
|
135
|
+
return accumulatedSeconds;
|
|
136
|
+
}, _VaryingTempoMap_absoluteSecondsToPPQN = function _VaryingTempoMap_absoluteSecondsToPPQN(targetSeconds) {
|
|
79
137
|
if (targetSeconds <= 0) {
|
|
80
138
|
return 0.0;
|
|
81
139
|
}
|
|
@@ -88,8 +146,21 @@ _VaryingTempoMap_adapter = new WeakMap(), _VaryingTempoMap_instances = new WeakS
|
|
|
88
146
|
if (collection.events.isEmpty()) {
|
|
89
147
|
return PPQN.secondsToPulses(targetSeconds, storageBpm);
|
|
90
148
|
}
|
|
91
|
-
let
|
|
92
|
-
let
|
|
149
|
+
let startPPQN = 0.0;
|
|
150
|
+
let startSeconds = 0.0;
|
|
151
|
+
if (__classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f").length > 0) {
|
|
152
|
+
const index = BinarySearch.rightMostMapped(__classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f"), targetSeconds, NumberComparator, (entry) => entry.seconds);
|
|
153
|
+
if (index >= 0) {
|
|
154
|
+
const entry = __classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f")[index];
|
|
155
|
+
startPPQN = entry.ppqn;
|
|
156
|
+
startSeconds = entry.seconds;
|
|
157
|
+
if (index === __classPrivateFieldGet(this, _VaryingTempoMap_secondsCache, "f").length - 1) {
|
|
158
|
+
return startPPQN + PPQN.secondsToPulses(targetSeconds - startSeconds, entry.bpm);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
let accumulatedSeconds = startSeconds;
|
|
163
|
+
let accumulatedPPQN = startPPQN;
|
|
93
164
|
while (accumulatedSeconds < targetSeconds) {
|
|
94
165
|
const currentBpm = collection.valueAt(accumulatedPPQN, storageBpm);
|
|
95
166
|
const nextGrid = quantizeCeil(accumulatedPPQN, TempoChangeGrid);
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { NeuralAmpDeviceBox } from "@opendaw/studio-boxes";
|
|
2
|
-
import { UUID } from "@opendaw/lib-std";
|
|
2
|
+
import { Option, UUID } from "@opendaw/lib-std";
|
|
3
3
|
import { Address, BooleanField, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
|
|
4
4
|
import { Pointers } from "@opendaw/studio-enums";
|
|
5
5
|
import { AudioEffectDeviceAdapter, DeviceHost } from "../../DeviceAdapter";
|
|
6
6
|
import { LabeledAudioOutput } from "../../LabeledAudioOutputsOwner";
|
|
7
7
|
import { BoxAdaptersContext } from "../../BoxAdaptersContext";
|
|
8
8
|
import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
|
|
9
|
+
import { NeuralAmpModelBoxAdapter } from "../../nam/NeuralAmpModelBoxAdapter";
|
|
9
10
|
export declare class NeuralAmpDeviceBoxAdapter implements AudioEffectDeviceAdapter {
|
|
10
11
|
#private;
|
|
11
12
|
readonly type = "audio-effect";
|
|
@@ -25,9 +26,11 @@ export declare class NeuralAmpDeviceBoxAdapter implements AudioEffectDeviceAdapt
|
|
|
25
26
|
get enabledField(): BooleanField;
|
|
26
27
|
get minimizedField(): BooleanField;
|
|
27
28
|
get host(): PointerField<Pointers.AudioEffectHost>;
|
|
28
|
-
get
|
|
29
|
+
get modelField(): PointerField<Pointers.NeuralAmpModel>;
|
|
29
30
|
get monoField(): BooleanField;
|
|
30
31
|
get spectrum(): Address;
|
|
32
|
+
getModelAdapter(): Option<NeuralAmpModelBoxAdapter>;
|
|
33
|
+
getModelJson(): string;
|
|
31
34
|
deviceHost(): DeviceHost;
|
|
32
35
|
audioUnitBoxAdapter(): AudioUnitBoxAdapter;
|
|
33
36
|
labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeuralAmpDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/NeuralAmpDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"NeuralAmpDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/NeuralAmpDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAoB,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAC,MAAM,EAAiB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAG3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAC,wBAAwB,EAAC,MAAM,oCAAoC,CAAA;AAE3E,qBAAa,yBAA0B,YAAW,wBAAwB;;IACtE,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAC1B,QAAQ,CAAC,SAAS,sCAA6B;IAM/C,QAAQ,CAAC,cAAc;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB;IAOhE,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwB;IAC1E,IAAI,UAAU,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAyB;IAChF,IAAI,SAAS,IAAI,YAAY,CAAwB;IACrD,IAAI,QAAQ,IAAI,OAAO,CAAyC;IAEhE,eAAe,IAAI,MAAM,CAAC,wBAAwB,CAAC;IAMnD,YAAY,IAAI,MAAM;IAQtB,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAExC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIrD,SAAS,IAAI,IAAI;CAmBpB"}
|
|
@@ -14,6 +14,7 @@ import { Option, StringMapping, ValueMapping } from "@opendaw/lib-std";
|
|
|
14
14
|
import { Devices } from "../../DeviceAdapter";
|
|
15
15
|
import { DeviceManualUrls } from "../../DeviceManualUrls";
|
|
16
16
|
import { ParameterAdapterSet } from "../../ParameterAdapterSet";
|
|
17
|
+
import { NeuralAmpModelBoxAdapter } from "../../nam/NeuralAmpModelBoxAdapter";
|
|
17
18
|
export class NeuralAmpDeviceBoxAdapter {
|
|
18
19
|
constructor(context, box) {
|
|
19
20
|
_NeuralAmpDeviceBoxAdapter_instances.add(this);
|
|
@@ -36,9 +37,23 @@ export class NeuralAmpDeviceBoxAdapter {
|
|
|
36
37
|
get enabledField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").enabled; }
|
|
37
38
|
get minimizedField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").minimized; }
|
|
38
39
|
get host() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").host; }
|
|
39
|
-
get
|
|
40
|
+
get modelField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").model; }
|
|
40
41
|
get monoField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").mono; }
|
|
41
42
|
get spectrum() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").address.append(0xFFF); }
|
|
43
|
+
getModelAdapter() {
|
|
44
|
+
const target = __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").model.targetVertex;
|
|
45
|
+
if (target.isEmpty()) {
|
|
46
|
+
return Option.None;
|
|
47
|
+
}
|
|
48
|
+
return Option.wrap(__classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_context, "f").boxAdapters.adapterFor(target.unwrap().box, NeuralAmpModelBoxAdapter));
|
|
49
|
+
}
|
|
50
|
+
getModelJson() {
|
|
51
|
+
const modelAdapter = this.getModelAdapter();
|
|
52
|
+
if (modelAdapter.nonEmpty()) {
|
|
53
|
+
return modelAdapter.unwrap().getModelJson();
|
|
54
|
+
}
|
|
55
|
+
return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").modelJson.getValue();
|
|
56
|
+
}
|
|
42
57
|
deviceHost() {
|
|
43
58
|
return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_context, "f").boxAdapters
|
|
44
59
|
.adapterFor(__classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
|
package/dist/index.d.ts
CHANGED
|
@@ -102,6 +102,7 @@ export * from "./modular/modules/delay";
|
|
|
102
102
|
export * from "./modular/modules/gain";
|
|
103
103
|
export * from "./modular/modules/multiplier";
|
|
104
104
|
export * from "./modular/user-interface";
|
|
105
|
+
export * from "./nam/NeuralAmpModelBoxAdapter";
|
|
105
106
|
export * from "./offline-renderer";
|
|
106
107
|
export * from "./preset/PresetDecoder";
|
|
107
108
|
export * from "./preset/PresetEncoder";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -104,6 +104,7 @@ export * from "./modular/modules/delay";
|
|
|
104
104
|
export * from "./modular/modules/gain";
|
|
105
105
|
export * from "./modular/modules/multiplier";
|
|
106
106
|
export * from "./modular/user-interface";
|
|
107
|
+
export * from "./nam/NeuralAmpModelBoxAdapter";
|
|
107
108
|
export * from "./offline-renderer";
|
|
108
109
|
export * from "./preset/PresetDecoder";
|
|
109
110
|
export * from "./preset/PresetEncoder";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NeuralAmpModelBox } from "@opendaw/studio-boxes";
|
|
2
|
+
import { UUID } from "@opendaw/lib-std";
|
|
3
|
+
import { Address, StringField } from "@opendaw/lib-box";
|
|
4
|
+
import { BoxAdaptersContext } from "../BoxAdaptersContext";
|
|
5
|
+
import { BoxAdapter } from "../BoxAdapter";
|
|
6
|
+
export declare class NeuralAmpModelBoxAdapter implements BoxAdapter {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(context: BoxAdaptersContext, box: NeuralAmpModelBox);
|
|
9
|
+
get box(): NeuralAmpModelBox;
|
|
10
|
+
get uuid(): UUID.Bytes;
|
|
11
|
+
get address(): Address;
|
|
12
|
+
get labelField(): StringField;
|
|
13
|
+
get modelField(): StringField;
|
|
14
|
+
getModelJson(): string;
|
|
15
|
+
terminate(): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=NeuralAmpModelBoxAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeuralAmpModelBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/nam/NeuralAmpModelBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAExC,qBAAa,wBAAyB,YAAW,UAAU;;gBAI3C,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,iBAAiB;IAK/D,IAAI,GAAG,IAAI,iBAAiB,CAAmB;IAC/C,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,UAAU,IAAI,WAAW,CAAyB;IAEtD,YAAY,IAAI,MAAM;IAItB,SAAS,IAAI,IAAI;CACpB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _NeuralAmpModelBoxAdapter_context, _NeuralAmpModelBoxAdapter_box;
|
|
13
|
+
export class NeuralAmpModelBoxAdapter {
|
|
14
|
+
constructor(context, box) {
|
|
15
|
+
_NeuralAmpModelBoxAdapter_context.set(this, void 0);
|
|
16
|
+
_NeuralAmpModelBoxAdapter_box.set(this, void 0);
|
|
17
|
+
__classPrivateFieldSet(this, _NeuralAmpModelBoxAdapter_context, context, "f");
|
|
18
|
+
__classPrivateFieldSet(this, _NeuralAmpModelBoxAdapter_box, box, "f");
|
|
19
|
+
}
|
|
20
|
+
get box() { return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f"); }
|
|
21
|
+
get uuid() { return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f").address.uuid; }
|
|
22
|
+
get address() { return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f").address; }
|
|
23
|
+
get labelField() { return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f").label; }
|
|
24
|
+
get modelField() { return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f").model; }
|
|
25
|
+
getModelJson() {
|
|
26
|
+
return __classPrivateFieldGet(this, _NeuralAmpModelBoxAdapter_box, "f").model.getValue();
|
|
27
|
+
}
|
|
28
|
+
terminate() { }
|
|
29
|
+
}
|
|
30
|
+
_NeuralAmpModelBoxAdapter_context = new WeakMap(), _NeuralAmpModelBoxAdapter_box = new WeakMap();
|
|
@@ -103,7 +103,7 @@ export var ProjectUtils;
|
|
|
103
103
|
...dependencies
|
|
104
104
|
.map(box => ({
|
|
105
105
|
source: box.address.uuid,
|
|
106
|
-
target: box.resource === "
|
|
106
|
+
target: box.resource === "preserved" ? box.address.uuid : UUID.generate()
|
|
107
107
|
}))
|
|
108
108
|
]);
|
|
109
109
|
return uuidMap;
|
|
@@ -111,7 +111,7 @@ export var ProjectUtils;
|
|
|
111
111
|
const copy = (uuidMap, boxGraph, audioUnitBoxes, dependencies) => {
|
|
112
112
|
const existingExternalResourceUUIDs = UUID.newSet(uuid => uuid);
|
|
113
113
|
dependencies.forEach((source) => {
|
|
114
|
-
if (source.resource === "
|
|
114
|
+
if (source.resource === "preserved" && boxGraph.findBox(source.address.uuid).nonEmpty()) {
|
|
115
115
|
existingExternalResourceUUIDs.add(source.address.uuid);
|
|
116
116
|
}
|
|
117
117
|
});
|
package/dist/protocols.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ import { AudioData, ppqn } from "@opendaw/lib-dsp";
|
|
|
3
3
|
import { ClipSequencingUpdates } from "./ClipNotifications";
|
|
4
4
|
import { NoteSignal } from "./NoteSignal";
|
|
5
5
|
import type { SoundFont2 } from "soundfont2";
|
|
6
|
+
export type MonitoringMapEntry = {
|
|
7
|
+
uuid: UUID.Bytes;
|
|
8
|
+
channels: ReadonlyArray<int>;
|
|
9
|
+
};
|
|
6
10
|
export interface EngineCommands extends Terminable {
|
|
7
11
|
play(): void;
|
|
8
12
|
stop(reset: boolean): void;
|
|
@@ -17,6 +21,7 @@ export interface EngineCommands extends Terminable {
|
|
|
17
21
|
scheduleClipStop(trackIds: ReadonlyArray<UUID.Bytes>): void;
|
|
18
22
|
setupMIDI(port: MessagePort, buffer: SharedArrayBuffer): void;
|
|
19
23
|
loadClickSound(index: 0 | 1, data: AudioData): void;
|
|
24
|
+
updateMonitoringMap(map: ReadonlyArray<MonitoringMapEntry>): void;
|
|
20
25
|
}
|
|
21
26
|
export interface EngineToClient {
|
|
22
27
|
log(message: string): void;
|
package/dist/protocols.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAE1C,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,aAAa,IAAI,IAAI,CAAA;IACrB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,IAAI,IAAI,CAAA;IAEb,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAExC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC3D,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAE7D,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAE1C,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;CAAE,CAAA;AAEnF,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,aAAa,IAAI,IAAI,CAAA;IACrB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,IAAI,IAAI,CAAA;IAEb,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAExC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC3D,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAE7D,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IAEnD,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;CACpE;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACpC,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,IAAI,IAAI,CAAA;CAChB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendaw/studio-adapters",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.81",
|
|
4
4
|
"license": "LGPL-3.0-or-later",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -23,18 +23,18 @@
|
|
|
23
23
|
"test": "echo \"No tests to run\""
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@opendaw/lib-box": "^0.0.
|
|
27
|
-
"@opendaw/lib-dsp": "^0.0.
|
|
28
|
-
"@opendaw/lib-fusion": "^0.0.
|
|
29
|
-
"@opendaw/lib-runtime": "^0.0.
|
|
30
|
-
"@opendaw/lib-std": "^0.0.
|
|
31
|
-
"@opendaw/studio-boxes": "^0.0.
|
|
32
|
-
"@opendaw/studio-enums": "^0.0.
|
|
26
|
+
"@opendaw/lib-box": "^0.0.71",
|
|
27
|
+
"@opendaw/lib-dsp": "^0.0.70",
|
|
28
|
+
"@opendaw/lib-fusion": "^0.0.76",
|
|
29
|
+
"@opendaw/lib-runtime": "^0.0.68",
|
|
30
|
+
"@opendaw/lib-std": "^0.0.67",
|
|
31
|
+
"@opendaw/studio-boxes": "^0.0.73",
|
|
32
|
+
"@opendaw/studio-enums": "^0.0.62",
|
|
33
33
|
"soundfont2": "^0.5.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@opendaw/eslint-config": "^0.0.27",
|
|
37
37
|
"@opendaw/typescript-config": "^0.0.28"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "410e32d862fae20e1ecfffcee7407451e6537655"
|
|
40
40
|
}
|