@opendaw/studio-adapters 0.0.118 → 0.0.119
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/EngineProcessorAttachment.d.ts +1 -0
- package/dist/EngineProcessorAttachment.d.ts.map +1 -1
- package/dist/ScriptCompiler.d.ts +1 -0
- package/dist/ScriptCompiler.d.ts.map +1 -1
- package/dist/ScriptCompiler.js +26 -4
- package/dist/ScriptDeclaration.d.ts.map +1 -1
- package/dist/ScriptDeclaration.js +1 -10
- package/dist/offline-renderer.d.ts +1 -0
- package/dist/offline-renderer.d.ts.map +1 -1
- package/dist/project/ProjectSkeleton.d.ts.map +1 -1
- package/dist/project/ProjectSkeleton.js +2 -0
- package/dist/timeline/TrackBoxAdapter.js +1 -1
- package/package.json +13 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineProcessorAttachment.d.ts","sourceRoot":"","sources":["../src/EngineProcessorAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAa,MAAM,EAAC,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAErC,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAGjC,MAAM,MAAM,yBAAyB,GAAG;IACpC,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,aAAa,EAAE,iBAAiB,CAAA;IAChC,OAAO,EAAE,eAAe,CAAA;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"EngineProcessorAttachment.d.ts","sourceRoot":"","sources":["../src/EngineProcessorAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAa,MAAM,EAAC,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAErC,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAGjC,MAAM,MAAM,yBAAyB,GAAG;IACpC,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,aAAa,EAAE,iBAAiB,CAAA;IAChC,OAAO,EAAE,eAAe,CAAA;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IAClC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,YAAY,EAAE,OAAO,CAAA;IACrB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAAA;AAE7D,MAAM,MAAM,mBAAmB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IAC/C,KAAK,CAAC,EAAE,WAAW,CAAA;CACtB,CAAA;AAED,yBAAiB,mBAAmB,CAAC;IAC1B,MAAM,UAAU,GAAI,QAAQ,MAAM,CAAC,mBAAmB,CAAC,KAAG,GAI3D,CAAA;IAEC,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAA4D,CAAA;IAErG,MAAM,0BAA0B,GAAI,eAAe,mBAAmB,KAAG,IAmB/E,CAAA;CACJ"}
|
package/dist/ScriptCompiler.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare namespace ScriptCompiler {
|
|
|
14
14
|
readonly registryName: string;
|
|
15
15
|
readonly functionName: string;
|
|
16
16
|
};
|
|
17
|
+
const wrap: (config: ScriptCompiler.Config, uuid: string, update: number, userCode: string) => string;
|
|
17
18
|
const create: (config: Config) => {
|
|
18
19
|
stripHeader: (source: string) => string;
|
|
19
20
|
load: (audioContext: BaseAudioContext, deviceBox: ScriptDeviceBox) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptCompiler.d.ts","sourceRoot":"","sources":["../src/ScriptCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAkB,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAG9C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"ScriptCompiler.d.ts","sourceRoot":"","sources":["../src/ScriptCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAkB,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAG9C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAqJrC,yBAAiB,cAAc,CAAC;IAC5B,UAAiB,eAAgB,SAAQ,SAAS;QAC9C,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;QACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;QAC1B,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC9C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;KAC3C;IAED,KAAY,MAAM,GAAG;QACjB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAChC,CAAA;IAKM,MAAM,IAAI,WArDO,cAAc,CAAC,MAAM,QAAQ,MAAM,UAAU,MAAM,YAAY,MAAM,KAAG,MAqDlE,CAAA;IAEvB,MAAM,MAAM,GAAI,QAAQ,MAAM;8BAMP,MAAM,KAAG,MAAM;6BACV,gBAAgB,aAAa,eAAe,KAAG,OAAO,CAAC,IAAI,CAAC;gCAYzD,gBAAgB,WACrB,OAAO,aACL,eAAe,UAClB,MAAM,WACN,OAAO,KAAW,OAAO,CAAC,IAAI,CAAC;KA2B9D,CAAA;CACJ"}
|
package/dist/ScriptCompiler.js
CHANGED
|
@@ -112,7 +112,22 @@ const reconcileSamples = (deviceBox, declared, order) => {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
|
-
|
|
115
|
+
// Wrap the user script for registration into `globalThis.openDAW.<registry>[uuid]`. Beyond `{update, create}`
|
|
116
|
+
// (consumed by the TS core-processors engine), the entry also carries the PARSED `@param` / `@sample`
|
|
117
|
+
// declarations (with their declaration index, matching the `WerkstattParameterBox.index` the engine keys by):
|
|
118
|
+
// the WASM script bridge needs them to map a param's raw automation value through the right `ValueMapping` and
|
|
119
|
+
// to label each param / sample, since the worklet has no box graph to read those from. The TS engine ignores
|
|
120
|
+
// the extra fields (it resolves mappings + labels from the box adapter), so this stays a pure superset.
|
|
121
|
+
const wrapScript = (config, uuid, update, userCode) => {
|
|
122
|
+
const order = ScriptDeclaration.parseDeclarationOrder(userCode);
|
|
123
|
+
const params = ScriptDeclaration.parseParams(userCode).map(declaration => ({
|
|
124
|
+
label: declaration.label, index: order.get(declaration.label) ?? 0, mapping: declaration.mapping,
|
|
125
|
+
min: declaration.min, max: declaration.max, unit: declaration.unit
|
|
126
|
+
}));
|
|
127
|
+
const samples = ScriptDeclaration.parseSamples(userCode).map(declaration => ({
|
|
128
|
+
label: declaration.label, index: order.get(declaration.label) ?? 0
|
|
129
|
+
}));
|
|
130
|
+
return `
|
|
116
131
|
if (typeof globalThis.openDAW === "undefined") { globalThis.openDAW = {} }
|
|
117
132
|
if (typeof globalThis.openDAW.${config.registryName} === "undefined") { globalThis.openDAW.${config.registryName} = {} }
|
|
118
133
|
globalThis.openDAW.${config.registryName}["${uuid}"] = {
|
|
@@ -120,9 +135,12 @@ const wrapCode = (config, uuid, update, userCode) => `
|
|
|
120
135
|
create: (function ${config.functionName}() {
|
|
121
136
|
${userCode}
|
|
122
137
|
return Processor
|
|
123
|
-
})()
|
|
138
|
+
})(),
|
|
139
|
+
params: ${JSON.stringify(params)},
|
|
140
|
+
samples: ${JSON.stringify(samples)}
|
|
124
141
|
}
|
|
125
142
|
`;
|
|
143
|
+
};
|
|
126
144
|
const validateCode = (wrappedCode) => { new Function(wrappedCode); };
|
|
127
145
|
const registerWorklet = async (audioContext, wrappedCode) => {
|
|
128
146
|
const blob = new Blob([wrappedCode], { type: "application/javascript" });
|
|
@@ -136,6 +154,10 @@ const registerWorklet = async (audioContext, wrappedCode) => {
|
|
|
136
154
|
};
|
|
137
155
|
export var ScriptCompiler;
|
|
138
156
|
(function (ScriptCompiler) {
|
|
157
|
+
// The wrapped, registry-populating source for a script (`{update, create, params, samples}`), exposed so the
|
|
158
|
+
// WASM script bridge + its parity tests + the offline renderer can seed `globalThis.openDAW` identically to
|
|
159
|
+
// the live app (which goes through `compile` / `load`). The single source of truth for the registry shape.
|
|
160
|
+
ScriptCompiler.wrap = wrapScript;
|
|
139
161
|
ScriptCompiler.create = (config) => {
|
|
140
162
|
const headerPattern = createHeaderPattern(config.headerTag);
|
|
141
163
|
const createHeader = (update) => `// @${config.headerTag} js ${COMPILER_VERSION} ${update}\n`;
|
|
@@ -154,7 +176,7 @@ export var ScriptCompiler;
|
|
|
154
176
|
}
|
|
155
177
|
cachedParamDeclarations.set(deviceBox, declMap);
|
|
156
178
|
const uuid = UUID.toString(deviceBox.address.uuid);
|
|
157
|
-
const wrappedCode =
|
|
179
|
+
const wrappedCode = wrapScript(config, uuid, update, userCode);
|
|
158
180
|
validateCode(wrappedCode);
|
|
159
181
|
return registerWorklet(audioContext, wrappedCode);
|
|
160
182
|
},
|
|
@@ -168,7 +190,7 @@ export var ScriptCompiler;
|
|
|
168
190
|
const params = ScriptDeclaration.parseParams(userCode);
|
|
169
191
|
const samples = ScriptDeclaration.parseSamples(userCode);
|
|
170
192
|
const order = ScriptDeclaration.parseDeclarationOrder(userCode);
|
|
171
|
-
const wrappedCode =
|
|
193
|
+
const wrappedCode = wrapScript(config, uuid, newUpdate, userCode);
|
|
172
194
|
validateCode(wrappedCode);
|
|
173
195
|
const label = ScriptDeclaration.parseLabel(userCode);
|
|
174
196
|
const modifier = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptDeclaration.d.ts","sourceRoot":"","sources":["../src/ScriptDeclaration.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ScriptDeclaration.d.ts","sourceRoot":"","sources":["../src/ScriptDeclaration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { asInstanceOf, isDefined,
|
|
1
|
+
import { asInstanceOf, isDefined, Notifier, Option, StringMapping, Terminable, ValueMapping } from "@opendaw/lib-std";
|
|
2
2
|
import { WerkstattParameterBox } from "@opendaw/studio-boxes";
|
|
3
3
|
const LABEL_LINE = /^\/\/ @label .+$/m;
|
|
4
4
|
const PARAM_LINE = /^\/\/ @param .+$/gm;
|
|
@@ -23,9 +23,6 @@ const parseSingleParam = (line) => {
|
|
|
23
23
|
throw new Error(`Malformed @param: '${line}'`);
|
|
24
24
|
}
|
|
25
25
|
const label = tokens[0];
|
|
26
|
-
if (!isValidIdentifier(label)) {
|
|
27
|
-
throw new Error(`Malformed @param: '${line}' — '${label}' is not a valid identifier`);
|
|
28
|
-
}
|
|
29
26
|
if (tokens.length === 1) {
|
|
30
27
|
return { label, defaultValue: 0, min: 0, max: 1, mapping: "unipolar", unit: "" };
|
|
31
28
|
}
|
|
@@ -118,9 +115,6 @@ export var ScriptDeclaration;
|
|
|
118
115
|
if (tokens.length > 1) {
|
|
119
116
|
throw new Error(`Malformed @sample: '${match[0]}' — expected: // @sample <name>`);
|
|
120
117
|
}
|
|
121
|
-
if (!isValidIdentifier(tokens[0])) {
|
|
122
|
-
throw new Error(`Malformed @sample: '${match[0]}' — '${tokens[0]}' is not a valid identifier`);
|
|
123
|
-
}
|
|
124
118
|
samples.push({ label: tokens[0] });
|
|
125
119
|
}
|
|
126
120
|
return samples;
|
|
@@ -163,9 +157,6 @@ export var ScriptDeclaration;
|
|
|
163
157
|
if (tokens.length === 0 || tokens[0].length === 0) {
|
|
164
158
|
throw new Error(`Malformed @sample: '${line}' — expected: // @sample <name>`);
|
|
165
159
|
}
|
|
166
|
-
if (!isValidIdentifier(tokens[0])) {
|
|
167
|
-
throw new Error(`Malformed @sample: '${line}' — '${tokens[0]}' is not a valid identifier`);
|
|
168
|
-
}
|
|
169
160
|
currentItems.push({ type: "sample", declaration: { label: tokens[0] } });
|
|
170
161
|
}
|
|
171
162
|
}
|
|
@@ -7,6 +7,7 @@ export interface OfflineEngineInitializeConfig {
|
|
|
7
7
|
controlFlagsBuffer: SharedArrayBuffer;
|
|
8
8
|
project: ArrayBufferLike;
|
|
9
9
|
exportConfiguration?: ExportConfiguration;
|
|
10
|
+
variant?: Record<string, unknown>;
|
|
10
11
|
}
|
|
11
12
|
export interface OfflineEngineRenderConfig {
|
|
12
13
|
silenceThresholdDb?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offline-renderer.d.ts","sourceRoot":"","sources":["../src/offline-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAA;AAE/D,MAAM,WAAW,6BAA6B;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,OAAO,EAAE,eAAe,CAAA;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"offline-renderer.d.ts","sourceRoot":"","sources":["../src/offline-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAA;AAE/D,MAAM,WAAW,6BAA6B;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,OAAO,EAAE,eAAe,CAAA;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,yBAAyB;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB;IAClC,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAClE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAC9C,IAAI,IAAI,IAAI,CAAA;CACf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectSkeleton.d.ts","sourceRoot":"","sources":["../../src/project/ProjectSkeleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAGH,KAAK,EAQR,MAAM,uBAAuB,CAAA;AAa9B,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAA;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,cAAc,EAAE,qBAAqB,CAAA;CACxC,CAAA;AAED,yBAAiB,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ProjectSkeleton.d.ts","sourceRoot":"","sources":["../../src/project/ProjectSkeleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAGH,KAAK,EAQR,MAAM,uBAAuB,CAAA;AAa9B,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAA;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,cAAc,EAAE,qBAAqB,CAAA;CACxC,CAAA;AAED,yBAAiB,eAAe,CAAC;IAMtB,MAAM,KAAK,GAAI,SAAS;QAC3B,qBAAqB,EAAE,OAAO,CAAC;QAC/B,iBAAiB,EAAE,OAAO,CAAA;KAC7B,KAAG,eAsDH,CAAA;IAEM,MAAM,MAAM,GAAI,UAAU,QAAQ,oBAQxC,CAAA;IAEM,MAAM,MAAM,GAAI,aAAa,eAAe,KAAG,eAYrD,CAAA;IAEM,MAAM,kBAAkB,GAAI,UAAU,QAAQ,KAAG,qBAiBvD,CAAA;CACJ"}
|
|
@@ -4,6 +4,8 @@ import { asInstanceOf, assert, ByteArrayInput, ByteArrayOutput, isDefined, Optio
|
|
|
4
4
|
import { AudioUnitType, Colors, IconSymbol } from "@opendaw/studio-enums";
|
|
5
5
|
export var ProjectSkeleton;
|
|
6
6
|
(function (ProjectSkeleton) {
|
|
7
|
+
// WASM CONTRACT: this OPEN magic + format version frame every project the Rust engine loads
|
|
8
|
+
// (crates/studio-boxes). Keep both in lockstep with the Rust reader.
|
|
7
9
|
const MAGIC_HEADER_OPEN = 0x4F50454E;
|
|
8
10
|
const FORMAT_VERSION = 2;
|
|
9
11
|
ProjectSkeleton.empty = (options) => {
|
|
@@ -165,7 +165,7 @@ export class TrackBoxAdapter {
|
|
|
165
165
|
},
|
|
166
166
|
some: clip => {
|
|
167
167
|
if (sectionFrom === position) {
|
|
168
|
-
if (isInstanceOf(clip, ValueClipBoxAdapter)) {
|
|
168
|
+
if (isInstanceOf(clip, ValueClipBoxAdapter) && !clip.mute) {
|
|
169
169
|
return clip.valueAt(position, fallback);
|
|
170
170
|
}
|
|
171
171
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendaw/studio-adapters",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.119",
|
|
4
4
|
"license": "LGPL-3.0-or-later",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -20,21 +20,24 @@
|
|
|
20
20
|
"generate-exports": "node generate-exports.mjs",
|
|
21
21
|
"build": "npm run generate-exports && tsc",
|
|
22
22
|
"lint": "eslint \"**/*.ts\"",
|
|
23
|
-
"test": "echo \"No tests to run\""
|
|
23
|
+
"test": "echo \"No tests to run\"",
|
|
24
|
+
"generate-all-boxes": "npx tsx scripts/generate-all-boxes.ts",
|
|
25
|
+
"pregenerate-all-boxes": "npm run build -w @opendaw/studio-forge-boxes && npm run build -w @opendaw/studio-boxes"
|
|
24
26
|
},
|
|
25
27
|
"dependencies": {
|
|
26
|
-
"@opendaw/lib-box": "^0.0.
|
|
27
|
-
"@opendaw/lib-dsp": "^0.0.
|
|
28
|
-
"@opendaw/lib-fusion": "^0.0.
|
|
29
|
-
"@opendaw/lib-
|
|
30
|
-
"@opendaw/lib-
|
|
31
|
-
"@opendaw/
|
|
32
|
-
"@opendaw/studio-
|
|
28
|
+
"@opendaw/lib-box": "^0.0.88",
|
|
29
|
+
"@opendaw/lib-dsp": "^0.0.86",
|
|
30
|
+
"@opendaw/lib-fusion": "^0.0.96",
|
|
31
|
+
"@opendaw/lib-midi": "^0.0.68",
|
|
32
|
+
"@opendaw/lib-runtime": "^0.0.81",
|
|
33
|
+
"@opendaw/lib-std": "^0.0.80",
|
|
34
|
+
"@opendaw/studio-boxes": "^0.0.96",
|
|
35
|
+
"@opendaw/studio-enums": "^0.0.79",
|
|
33
36
|
"soundfont2": "^0.5.0"
|
|
34
37
|
},
|
|
35
38
|
"devDependencies": {
|
|
36
39
|
"@opendaw/eslint-config": "^0.0.28",
|
|
37
40
|
"@opendaw/typescript-config": "^0.0.32"
|
|
38
41
|
},
|
|
39
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "39217ab3e0c5e488cb21ca20e1fcd673e6f60142"
|
|
40
43
|
}
|