@opendaw/studio-core 0.0.99 → 0.0.101
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/EffectFactories.d.ts.map +1 -1
- package/dist/EffectFactories.js +39 -24
- package/dist/Engine.d.ts +2 -0
- package/dist/Engine.d.ts.map +1 -1
- package/dist/EngineFacade.d.ts +2 -0
- package/dist/EngineFacade.d.ts.map +1 -1
- package/dist/EngineFacade.js +3 -0
- package/dist/EngineWorklet.d.ts +2 -0
- package/dist/EngineWorklet.d.ts.map +1 -1
- package/dist/EngineWorklet.js +10 -2
- package/dist/HRClockWorker.d.ts +7 -0
- package/dist/HRClockWorker.d.ts.map +1 -0
- package/dist/HRClockWorker.js +54 -0
- package/dist/OfflineEngineRenderer.d.ts.map +1 -1
- package/dist/OfflineEngineRenderer.js +5 -2
- package/dist/RecordingWorklet.d.ts +2 -1
- package/dist/RecordingWorklet.d.ts.map +1 -1
- package/dist/RecordingWorklet.js +9 -1
- package/dist/Storage.d.ts.map +1 -1
- package/dist/Storage.js +1 -0
- package/dist/StudioPreferences.d.ts +8 -0
- package/dist/StudioPreferences.d.ts.map +1 -1
- package/dist/StudioSettings.d.ts +13 -0
- package/dist/StudioSettings.d.ts.map +1 -1
- package/dist/StudioSettings.js +15 -0
- package/dist/capture/CaptureAudio.d.ts.map +1 -1
- package/dist/capture/CaptureAudio.js +8 -11
- package/dist/capture/RecordAudio.d.ts.map +1 -1
- package/dist/capture/RecordAudio.js +1 -0
- package/dist/processors.js +24 -24
- package/dist/processors.js.map +4 -4
- package/dist/project/Project.d.ts +6 -1
- package/dist/project/Project.d.ts.map +1 -1
- package/dist/project/Project.js +34 -2
- package/dist/project/ProjectApi.d.ts.map +1 -1
- package/dist/project/ProjectApi.js +14 -3
- package/dist/project/audio/AudioContentFactory.d.ts +5 -0
- package/dist/project/audio/AudioContentFactory.d.ts.map +1 -1
- package/dist/project/audio/AudioContentFactory.js +13 -0
- package/dist/ui/{generic → clipboard}/ClipboardManager.d.ts +3 -3
- package/dist/ui/clipboard/ClipboardManager.d.ts.map +1 -0
- package/dist/ui/{generic → clipboard}/ClipboardManager.js +70 -14
- package/dist/ui/clipboard/ClipboardUtils.d.ts +12 -0
- package/dist/ui/clipboard/ClipboardUtils.d.ts.map +1 -0
- package/dist/ui/clipboard/ClipboardUtils.js +94 -0
- package/dist/ui/{generic → clipboard}/ContextMenu.d.ts +1 -1
- package/dist/ui/clipboard/ContextMenu.d.ts.map +1 -0
- package/dist/ui/{generic → clipboard}/ContextMenu.js +1 -1
- package/dist/ui/clipboard/types/AudioUnitsClipboardHandler.d.ts +18 -0
- package/dist/ui/clipboard/types/AudioUnitsClipboardHandler.d.ts.map +1 -0
- package/dist/ui/clipboard/types/AudioUnitsClipboardHandler.js +215 -0
- package/dist/ui/clipboard/types/DevicesClipboardHandler.d.ts +18 -0
- package/dist/ui/clipboard/types/DevicesClipboardHandler.d.ts.map +1 -0
- package/dist/ui/clipboard/types/DevicesClipboardHandler.js +188 -0
- package/dist/ui/clipboard/types/NotesClipboardHandler.d.ts +21 -0
- package/dist/ui/clipboard/types/NotesClipboardHandler.d.ts.map +1 -0
- package/dist/ui/clipboard/types/NotesClipboardHandler.js +72 -0
- package/dist/ui/clipboard/types/RegionsClipboardHandler.d.ts +24 -0
- package/dist/ui/clipboard/types/RegionsClipboardHandler.d.ts.map +1 -0
- package/dist/ui/clipboard/types/RegionsClipboardHandler.js +137 -0
- package/dist/ui/clipboard/types/ValuesClipboardHandler.d.ts +22 -0
- package/dist/ui/clipboard/types/ValuesClipboardHandler.d.ts.map +1 -0
- package/dist/ui/clipboard/types/ValuesClipboardHandler.js +135 -0
- package/dist/ui/index.d.ts +14 -3
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +14 -3
- package/dist/ui/menu/MenuItems.d.ts.map +1 -0
- package/dist/ui/timeline/RegionClipResolver.d.ts +5 -1
- package/dist/ui/timeline/RegionClipResolver.d.ts.map +1 -1
- package/dist/ui/timeline/RegionClipResolver.js +5 -1
- package/dist/ui/timeline/RegionKeepExistingResolver.d.ts +34 -0
- package/dist/ui/timeline/RegionKeepExistingResolver.d.ts.map +1 -0
- package/dist/ui/timeline/RegionKeepExistingResolver.js +171 -0
- package/dist/ui/timeline/RegionOverlapResolver.d.ts +33 -0
- package/dist/ui/timeline/RegionOverlapResolver.d.ts.map +1 -0
- package/dist/ui/timeline/RegionOverlapResolver.js +79 -0
- package/dist/ui/timeline/RegionPushExistingResolver.d.ts +31 -0
- package/dist/ui/timeline/RegionPushExistingResolver.d.ts.map +1 -0
- package/dist/ui/timeline/RegionPushExistingResolver.js +159 -0
- package/dist/ui/timeline/TimelineFocus.d.ts +14 -0
- package/dist/ui/timeline/TimelineFocus.d.ts.map +1 -0
- package/dist/ui/timeline/TimelineFocus.js +45 -0
- package/dist/ui/timeline/TrackResolver.d.ts +11 -0
- package/dist/ui/timeline/TrackResolver.d.ts.map +1 -0
- package/dist/ui/timeline/TrackResolver.js +5 -0
- package/package.json +62 -61
- package/dist/ui/generic/ClipboardManager.d.ts.map +0 -1
- package/dist/ui/generic/ContextMenu.d.ts.map +0 -1
- package/dist/ui/generic/MenuItems.d.ts.map +0 -1
- /package/dist/ui/{generic → menu}/MenuItems.d.ts +0 -0
- /package/dist/ui/{generic → menu}/MenuItems.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EffectFactories.d.ts","sourceRoot":"","sources":["../src/EffectFactories.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAG7C,yBAAiB,eAAe,CAAC;IACtB,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"EffectFactories.d.ts","sourceRoot":"","sources":["../src/EffectFactories.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAG7C,yBAAiB,eAAe,CAAC;IACtB,MAAM,QAAQ,EAAE,aAatB,CAAA;IAEM,MAAM,KAAK,EAAE,aAanB,CAAA;IAEM,MAAM,QAAQ,EAAE,aAatB,CAAA;IAEM,MAAM,SAAS,EAAE,aA8BvB,CAAA;IAEM,MAAM,UAAU,EAAE,aAcxB,CAAA;IAEM,MAAM,KAAK,EAAE,aAcnB,CAAA;IAEM,MAAM,cAAc,EAAE,aAc5B,CAAA;IAEM,MAAM,SAAS,EAAE,aAavB,CAAA;IAEM,MAAM,UAAU,EAAE,aAcxB,CAAA;IAEM,MAAM,IAAI,EAAE,aAalB,CAAA;IAEM,MAAM,MAAM,EAAE,aAcpB,CAAA;IAEM,MAAM,OAAO,EAAE,aAarB,CAAA;IAEM,MAAM,IAAI,EAAE,aAalB,CAAA;IAEM,MAAM,KAAK,EAAE,aAcnB,CAAA;IAEM,MAAM,MAAM,EAAE,aAapB,CAAA;IAEM,MAAM,SAAS,EAAE,aAavB,CAAA;IAEM,MAAM,OAAO,EAAE,aAqDrB,CAAA;IAEM,MAAM,SAAS;;;;;KAKrB,CAAA;IAEM,MAAM,UAAU;;;;;;;;;;;;KAYtB,CAAA;IACM,MAAM,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAChC,CAAA;IACrB,MAAM,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAChC,CAAA;IACtB,MAAM,WAAW;;;;;;;;;;;;;;;;KAAgC,CAAA;IACxD,KAAY,cAAc,GAAG,MAAM,OAAO,SAAS,CAAA;IACnD,KAAY,eAAe,GAAG,MAAM,OAAO,UAAU,CAAA;CACxD"}
|
package/dist/EffectFactories.js
CHANGED
|
@@ -12,7 +12,7 @@ export var EffectFactories;
|
|
|
12
12
|
manualPage: DeviceManualUrls.Arpeggio,
|
|
13
13
|
separatorBefore: false,
|
|
14
14
|
type: "midi",
|
|
15
|
-
create: ({ boxGraph }, hostField, index) => ArpeggioDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
15
|
+
create: ({ boxGraph }, hostField, index) => ArpeggioDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
16
16
|
box.label.setValue("Arpeggio");
|
|
17
17
|
box.index.setValue(index);
|
|
18
18
|
box.host.refer(hostField);
|
|
@@ -25,7 +25,7 @@ export var EffectFactories;
|
|
|
25
25
|
manualPage: DeviceManualUrls.Pitch,
|
|
26
26
|
separatorBefore: false,
|
|
27
27
|
type: "midi",
|
|
28
|
-
create: ({ boxGraph }, hostField, index) => PitchDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
28
|
+
create: ({ boxGraph }, hostField, index) => PitchDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
29
29
|
box.label.setValue("Pitch");
|
|
30
30
|
box.index.setValue(index);
|
|
31
31
|
box.host.refer(hostField);
|
|
@@ -38,7 +38,7 @@ export var EffectFactories;
|
|
|
38
38
|
manualPage: DeviceManualUrls.Velocity,
|
|
39
39
|
separatorBefore: false,
|
|
40
40
|
type: "midi",
|
|
41
|
-
create: ({ boxGraph }, hostField, index) => VelocityDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
41
|
+
create: ({ boxGraph }, hostField, index) => VelocityDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
42
42
|
box.label.setValue("Velocity");
|
|
43
43
|
box.index.setValue(index);
|
|
44
44
|
box.host.refer(hostField);
|
|
@@ -55,11 +55,11 @@ export var EffectFactories;
|
|
|
55
55
|
const useGlobal = false; // TODO First Zeitgeist should be true
|
|
56
56
|
const shuffleBox = useGlobal
|
|
57
57
|
? rootBoxAdapter.groove.box
|
|
58
|
-
: GrooveShuffleBox.create(boxGraph, UUID.generate(), box => {
|
|
58
|
+
: GrooveShuffleBox.create(boxGraph, UUID.generate(), (box) => {
|
|
59
59
|
box.label.setValue("Shuffle");
|
|
60
60
|
box.duration.setValue(480);
|
|
61
61
|
});
|
|
62
|
-
return ZeitgeistDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
62
|
+
return ZeitgeistDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
63
63
|
box.label.setValue("Zeitgeist");
|
|
64
64
|
box.groove.refer(shuffleBox);
|
|
65
65
|
box.index.setValue(index);
|
|
@@ -74,7 +74,7 @@ export var EffectFactories;
|
|
|
74
74
|
manualPage: DeviceManualUrls.StereoTool,
|
|
75
75
|
separatorBefore: false,
|
|
76
76
|
type: "audio",
|
|
77
|
-
create: ({ boxGraph }, hostField, index) => StereoToolDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
77
|
+
create: ({ boxGraph }, hostField, index) => StereoToolDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
78
78
|
box.label.setValue("Stereo Tool");
|
|
79
79
|
box.index.setValue(index);
|
|
80
80
|
box.host.refer(hostField);
|
|
@@ -87,7 +87,7 @@ export var EffectFactories;
|
|
|
87
87
|
manualPage: DeviceManualUrls.Delay,
|
|
88
88
|
separatorBefore: false,
|
|
89
89
|
type: "audio",
|
|
90
|
-
create: ({ boxGraph }, hostField, index) => DelayDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
90
|
+
create: ({ boxGraph }, hostField, index) => DelayDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
91
91
|
box.label.setValue("Delay");
|
|
92
92
|
box.index.setValue(index);
|
|
93
93
|
box.host.refer(hostField);
|
|
@@ -101,7 +101,7 @@ export var EffectFactories;
|
|
|
101
101
|
manualPage: DeviceManualUrls.DattorroReverb,
|
|
102
102
|
separatorBefore: false,
|
|
103
103
|
type: "audio",
|
|
104
|
-
create: ({ boxGraph }, hostField, index) => DattorroReverbDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
104
|
+
create: ({ boxGraph }, hostField, index) => DattorroReverbDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
105
105
|
box.label.setValue("Dattorro Reverb");
|
|
106
106
|
box.index.setValue(index);
|
|
107
107
|
box.host.refer(hostField);
|
|
@@ -114,7 +114,7 @@ export var EffectFactories;
|
|
|
114
114
|
manualPage: DeviceManualUrls.Maximizer,
|
|
115
115
|
separatorBefore: false,
|
|
116
116
|
type: "audio",
|
|
117
|
-
create: ({ boxGraph }, hostField, index) => MaximizerDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
117
|
+
create: ({ boxGraph }, hostField, index) => MaximizerDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
118
118
|
box.label.setValue("Maximizer");
|
|
119
119
|
box.index.setValue(index);
|
|
120
120
|
box.host.refer(hostField);
|
|
@@ -127,7 +127,7 @@ export var EffectFactories;
|
|
|
127
127
|
manualPage: DeviceManualUrls.Compressor,
|
|
128
128
|
separatorBefore: false,
|
|
129
129
|
type: "audio",
|
|
130
|
-
create: ({ boxGraph }, hostField, index) => CompressorDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
130
|
+
create: ({ boxGraph }, hostField, index) => CompressorDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
131
131
|
box.label.setValue("Compressor");
|
|
132
132
|
box.index.setValue(index);
|
|
133
133
|
box.host.refer(hostField);
|
|
@@ -140,7 +140,7 @@ export var EffectFactories;
|
|
|
140
140
|
manualPage: DeviceManualUrls.Gate,
|
|
141
141
|
separatorBefore: false,
|
|
142
142
|
type: "audio",
|
|
143
|
-
create: ({ boxGraph }, hostField, index) => GateDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
143
|
+
create: ({ boxGraph }, hostField, index) => GateDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
144
144
|
box.label.setValue("Gate");
|
|
145
145
|
box.index.setValue(index);
|
|
146
146
|
box.host.refer(hostField);
|
|
@@ -153,7 +153,7 @@ export var EffectFactories;
|
|
|
153
153
|
manualPage: DeviceManualUrls.Reverb,
|
|
154
154
|
separatorBefore: false,
|
|
155
155
|
type: "audio",
|
|
156
|
-
create: ({ boxGraph }, hostField, index) => ReverbDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
156
|
+
create: ({ boxGraph }, hostField, index) => ReverbDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
157
157
|
box.label.setValue("Reverb");
|
|
158
158
|
box.preDelay.setInitValue(0.001);
|
|
159
159
|
box.index.setValue(index);
|
|
@@ -167,7 +167,7 @@ export var EffectFactories;
|
|
|
167
167
|
manualPage: DeviceManualUrls.Crusher,
|
|
168
168
|
separatorBefore: false,
|
|
169
169
|
type: "audio",
|
|
170
|
-
create: ({ boxGraph }, hostField, index) => CrusherDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
170
|
+
create: ({ boxGraph }, hostField, index) => CrusherDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
171
171
|
box.label.setValue("Crusher");
|
|
172
172
|
box.index.setValue(index);
|
|
173
173
|
box.host.refer(hostField);
|
|
@@ -180,7 +180,7 @@ export var EffectFactories;
|
|
|
180
180
|
manualPage: DeviceManualUrls.Fold,
|
|
181
181
|
separatorBefore: false,
|
|
182
182
|
type: "audio",
|
|
183
|
-
create: ({ boxGraph }, hostField, index) => FoldDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
183
|
+
create: ({ boxGraph }, hostField, index) => FoldDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
184
184
|
box.label.setValue("Fold");
|
|
185
185
|
box.index.setValue(index);
|
|
186
186
|
box.host.refer(hostField);
|
|
@@ -193,7 +193,7 @@ export var EffectFactories;
|
|
|
193
193
|
manualPage: DeviceManualUrls.Tidal,
|
|
194
194
|
separatorBefore: false,
|
|
195
195
|
type: "audio",
|
|
196
|
-
create: ({ boxGraph }, hostField, index) => TidalDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
196
|
+
create: ({ boxGraph }, hostField, index) => TidalDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
197
197
|
box.label.setValue("Tidal");
|
|
198
198
|
box.index.setValue(index);
|
|
199
199
|
box.depth.setValue(0.75);
|
|
@@ -207,7 +207,7 @@ export var EffectFactories;
|
|
|
207
207
|
manualPage: DeviceManualUrls.Revamp,
|
|
208
208
|
separatorBefore: false,
|
|
209
209
|
type: "audio",
|
|
210
|
-
create: ({ boxGraph }, hostField, index) => RevampDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
210
|
+
create: ({ boxGraph }, hostField, index) => RevampDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
211
211
|
EffectParameterDefaults.defaultRevampDeviceBox(box);
|
|
212
212
|
box.index.setValue(index);
|
|
213
213
|
box.host.refer(hostField);
|
|
@@ -220,7 +220,7 @@ export var EffectFactories;
|
|
|
220
220
|
manualPage: DeviceManualUrls.NeuralAmp,
|
|
221
221
|
separatorBefore: false,
|
|
222
222
|
type: "audio",
|
|
223
|
-
create: ({ boxGraph }, hostField, index) => NeuralAmpDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
223
|
+
create: ({ boxGraph }, hostField, index) => NeuralAmpDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
224
224
|
box.label.setValue("Neural Amp");
|
|
225
225
|
box.index.setValue(index);
|
|
226
226
|
box.host.refer(hostField);
|
|
@@ -234,29 +234,29 @@ export var EffectFactories;
|
|
|
234
234
|
separatorBefore: true,
|
|
235
235
|
type: "audio",
|
|
236
236
|
create: ({ boxGraph, rootBox, userEditingManager }, hostField, index) => {
|
|
237
|
-
const moduleSetupBox = ModularBox.create(boxGraph, UUID.generate(), box => {
|
|
237
|
+
const moduleSetupBox = ModularBox.create(boxGraph, UUID.generate(), (box) => {
|
|
238
238
|
box.collection.refer(rootBox.modularSetups);
|
|
239
239
|
box.label.setValue("Modular");
|
|
240
240
|
});
|
|
241
|
-
const modularInput = ModularAudioInputBox.create(boxGraph, UUID.generate(), box => {
|
|
241
|
+
const modularInput = ModularAudioInputBox.create(boxGraph, UUID.generate(), (box) => {
|
|
242
242
|
box.attributes.collection.refer(moduleSetupBox.modules);
|
|
243
243
|
box.attributes.label.setValue("Modular Input");
|
|
244
244
|
box.attributes.x.setValue(-256);
|
|
245
245
|
box.attributes.y.setValue(32);
|
|
246
246
|
});
|
|
247
|
-
const modularOutput = ModularAudioOutputBox.create(boxGraph, UUID.generate(), box => {
|
|
247
|
+
const modularOutput = ModularAudioOutputBox.create(boxGraph, UUID.generate(), (box) => {
|
|
248
248
|
box.attributes.collection.refer(moduleSetupBox.modules);
|
|
249
249
|
box.attributes.label.setValue("Modular Output");
|
|
250
250
|
box.attributes.x.setValue(256);
|
|
251
251
|
box.attributes.y.setValue(32);
|
|
252
252
|
});
|
|
253
|
-
ModuleConnectionBox.create(boxGraph, UUID.generate(), box => {
|
|
253
|
+
ModuleConnectionBox.create(boxGraph, UUID.generate(), (box) => {
|
|
254
254
|
box.collection.refer(moduleSetupBox.connections);
|
|
255
255
|
box.source.refer(modularInput.output);
|
|
256
256
|
box.target.refer(modularOutput.input);
|
|
257
257
|
});
|
|
258
258
|
userEditingManager.modularSystem.edit(moduleSetupBox.editing);
|
|
259
|
-
return ModularDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
259
|
+
return ModularDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
260
260
|
box.label.setValue("Modular");
|
|
261
261
|
box.modularSetup.refer(moduleSetupBox.device);
|
|
262
262
|
box.index.setValue(index);
|
|
@@ -264,9 +264,24 @@ export var EffectFactories;
|
|
|
264
264
|
});
|
|
265
265
|
}
|
|
266
266
|
};
|
|
267
|
-
EffectFactories.MidiNamed = {
|
|
267
|
+
EffectFactories.MidiNamed = {
|
|
268
|
+
Arpeggio: EffectFactories.Arpeggio,
|
|
269
|
+
Pitch: EffectFactories.Pitch,
|
|
270
|
+
Velocity: EffectFactories.Velocity,
|
|
271
|
+
Zeitgeist: EffectFactories.Zeitgeist
|
|
272
|
+
};
|
|
268
273
|
EffectFactories.AudioNamed = {
|
|
269
|
-
StereoTool: EffectFactories.StereoTool,
|
|
274
|
+
StereoTool: EffectFactories.StereoTool,
|
|
275
|
+
Compressor: EffectFactories.Compressor,
|
|
276
|
+
Gate: EffectFactories.Gate,
|
|
277
|
+
Delay: EffectFactories.Delay,
|
|
278
|
+
Reverb: EffectFactories.Reverb,
|
|
279
|
+
DattorroReverb: EffectFactories.DattorroReverb,
|
|
280
|
+
Revamp: EffectFactories.Revamp,
|
|
281
|
+
Crusher: EffectFactories.Crusher,
|
|
282
|
+
Fold: EffectFactories.Fold,
|
|
283
|
+
Tidal: EffectFactories.Tidal,
|
|
284
|
+
Maximizer: EffectFactories.Maximizer
|
|
270
285
|
};
|
|
271
286
|
EffectFactories.MidiList = Object.values(EffectFactories.MidiNamed);
|
|
272
287
|
EffectFactories.AudioList = Object.values(EffectFactories.AudioNamed);
|
package/dist/Engine.d.ts
CHANGED
|
@@ -31,5 +31,7 @@ export interface Engine extends Terminable {
|
|
|
31
31
|
get markerState(): ObservableValue<Nullable<[UUID.Bytes, int]>>;
|
|
32
32
|
get project(): Project;
|
|
33
33
|
get preferences(): EnginePreferences;
|
|
34
|
+
get perfBuffer(): Float32Array;
|
|
35
|
+
get perfIndex(): number;
|
|
34
36
|
}
|
|
35
37
|
//# sourceMappingURL=Engine.d.ts.map
|
package/dist/Engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACzG,OAAO,EAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAEjC,MAAM,WAAW,MAAO,SAAQ,UAAU;IACtC,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,IAAI,IAAI,CAAA;IACZ,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,aAAa,IAAI,IAAI,CAAA;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,IAAI,IAAI,CAAA;IACZ,KAAK,IAAI,IAAI,CAAA;IACb,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,IAAI,IAAI,CAAA;IACZ,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACnD,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY,CAAA;IAC5D,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,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAA;IAE7E,IAAI,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,iBAAiB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IAC9C,IAAI,qBAAqB,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,WAAW,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/D,IAAI,OAAO,IAAI,OAAO,CAAA;IACtB,IAAI,WAAW,IAAI,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACzG,OAAO,EAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAEjC,MAAM,WAAW,MAAO,SAAQ,UAAU;IACtC,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,IAAI,IAAI,CAAA;IACZ,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,aAAa,IAAI,IAAI,CAAA;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,IAAI,IAAI,CAAA;IACZ,KAAK,IAAI,IAAI,CAAA;IACb,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,IAAI,IAAI,CAAA;IACZ,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACnD,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY,CAAA;IAC5D,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,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAA;IAE7E,IAAI,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,iBAAiB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IAC9C,IAAI,qBAAqB,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,WAAW,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/D,IAAI,OAAO,IAAI,OAAO,CAAA;IACtB,IAAI,WAAW,IAAI,iBAAiB,CAAA;IACpC,IAAI,UAAU,IAAI,YAAY,CAAA;IAC9B,IAAI,SAAS,IAAI,MAAM,CAAA;CAC1B"}
|
package/dist/EngineFacade.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ export declare class EngineFacade implements Engine {
|
|
|
26
26
|
get project(): Project;
|
|
27
27
|
get sampleRate(): number;
|
|
28
28
|
get preferences(): EnginePreferences;
|
|
29
|
+
get perfBuffer(): Float32Array;
|
|
30
|
+
get perfIndex(): number;
|
|
29
31
|
isReady(): Promise<void>;
|
|
30
32
|
queryLoadingComplete(): Promise<boolean>;
|
|
31
33
|
panic(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineFacade.d.ts","sourceRoot":"","sources":["../src/EngineFacade.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,GAAG,EACH,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,YAAY,EAEZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EAGjB,UAAU,EAEb,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAGjC,qBAAa,YAAa,YAAW,MAAM;;;IAoBvC,UAAU,CAAC,OAAO,EAAE,aAAa;IAgBjC,aAAa,IAAI,IAAI;IAErB,cAAc,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"EngineFacade.d.ts","sourceRoot":"","sources":["../src/EngineFacade.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,GAAG,EACH,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,YAAY,EAEZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EAGjB,UAAU,EAEb,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAGjC,qBAAa,YAAa,YAAW,MAAM;;;IAoBvC,UAAU,CAAC,OAAO,EAAE,aAAa;IAgBjC,aAAa,IAAI,IAAI;IAErB,cAAc,IAAI,IAAI;IAOtB,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,KAAK,GAAE,OAAe,GAAG,IAAI;IAClC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAC7C,aAAa,IAAI,IAAI;IAErB,IAAI,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAwB;IAC7D,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,CAAmB;IAClD,IAAI,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAyB;IAClE,IAAI,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC,CAA2B;IACtE,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,CAA4B;IACxE,IAAI,iBAAiB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAiC;IAC/E,IAAI,qBAAqB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAqC;IACtF,IAAI,WAAW,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAA2B;IACjG,IAAI,OAAO,IAAI,OAAO,CAAmE;IACzF,IAAI,UAAU,IAAI,MAAM,CAAsF;IAC9G,IAAI,WAAW,IAAI,iBAAiB,CAAiC;IACrE,IAAI,UAAU,IAAI,YAAY,CAAiF;IAC/G,IAAI,SAAS,IAAI,MAAM,CAA8D;IAErF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAGxC,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,IAAI;IACb,IAAI,IAAI,IAAI;IACZ,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAGnD,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,YAAY;IAG7E,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY;IAG5D,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;IAGxC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAGpC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAG1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAI3D,SAAS,IAAI,IAAI;CAIpB"}
|
package/dist/EngineFacade.js
CHANGED
|
@@ -25,6 +25,7 @@ export class EngineFacade {
|
|
|
25
25
|
}
|
|
26
26
|
assertWorklet() { this.#worklet.unwrap("No worklet available"); }
|
|
27
27
|
releaseWorklet() {
|
|
28
|
+
this.#worklet.ifSome(worklet => worklet.terminate());
|
|
28
29
|
this.#preferencesFacade.releaseHost();
|
|
29
30
|
this.#lifecycle.terminate();
|
|
30
31
|
this.#worklet = Option.None;
|
|
@@ -45,6 +46,8 @@ export class EngineFacade {
|
|
|
45
46
|
get project() { return this.#worklet.unwrap("No worklet to get project").project; }
|
|
46
47
|
get sampleRate() { return this.#worklet.isEmpty() ? 44_100 : this.#worklet.unwrap().context.sampleRate; }
|
|
47
48
|
get preferences() { return this.#preferencesFacade; }
|
|
49
|
+
get perfBuffer() { return this.#worklet.mapOr(worklet => worklet.perfBuffer, new Float32Array(0)); }
|
|
50
|
+
get perfIndex() { return this.#worklet.mapOr(worklet => worklet.perfIndex, 0); }
|
|
48
51
|
isReady() { return this.#worklet.mapOr(worklet => worklet.isReady(), Promise.resolve()); }
|
|
49
52
|
queryLoadingComplete() {
|
|
50
53
|
return this.#worklet.mapOr(worklet => worklet.queryLoadingComplete(), Promise.resolve(false));
|
package/dist/EngineWorklet.d.ts
CHANGED
|
@@ -27,6 +27,8 @@ export declare class EngineWorklet extends AudioWorkletNode implements Engine {
|
|
|
27
27
|
get markerState(): ObservableValue<Nullable<[UUID.Bytes, int]>>;
|
|
28
28
|
get project(): Project;
|
|
29
29
|
get preferences(): PreferencesHost<EngineSettings>;
|
|
30
|
+
get perfBuffer(): Float32Array;
|
|
31
|
+
get perfIndex(): number;
|
|
30
32
|
isReady(): Promise<void>;
|
|
31
33
|
queryLoadingComplete(): Promise<boolean>;
|
|
32
34
|
noteSignal(signal: NoteSignal): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineWorklet.d.ts","sourceRoot":"","sources":["../src/EngineWorklet.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EACH,sBAAsB,EAEtB,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,YAAY,EAGZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAIrD,OAAO,EACH,gBAAgB,EAIhB,cAAc,EAKd,wBAAwB,EACxB,UAAU,EACV,eAAe,EACf,gBAAgB,EACnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"EngineWorklet.d.ts","sourceRoot":"","sources":["../src/EngineWorklet.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EACH,sBAAsB,EAEtB,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,YAAY,EAGZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAIrD,OAAO,EACH,gBAAgB,EAIhB,cAAc,EAKd,wBAAwB,EACxB,UAAU,EACV,eAAe,EACf,gBAAgB,EACnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAKjC,qBAAa,aAAc,SAAQ,gBAAiB,YAAW,MAAM;;IACjE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAQ;IAEtB,QAAQ,CAAC,EAAE,SAAqB;gBAyBpB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,OAAO,EAChB,mBAAmB,CAAC,EAAE,wBAAwB,EAC9C,OAAO,CAAC,EAAE,gBAAgB;IA6ItC,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,KAAK,GAAE,OAAe,GAAG,IAAI;IAClC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAC7C,aAAa,IAAI,IAAI;IACrB,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IACZ,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAInD,IAAI,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAyB;IAClE,IAAI,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC,CAA2B;IACtE,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,CAA4B;IACxE,IAAI,qBAAqB,IAAI,eAAe,CAAC,MAAM,CAAC,CAAqC;IACzF,IAAI,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAwB;IAC7D,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,CAAmB;IAClD,IAAI,iBAAiB,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAiC;IACxF,IAAI,WAAW,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAA2B;IAC1F,IAAI,OAAO,IAAI,OAAO,CAAuB;IAC7C,IAAI,WAAW,IAAI,eAAe,CAAC,cAAc,CAAC,CAA2B;IAC7E,IAAI,UAAU,IAAI,YAAY,CAA0B;IACxD,IAAI,SAAS,IAAI,MAAM,CAAyB;IAEhD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IACxC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IACpC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY;IAC5D,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;IACxC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAI1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAG3D,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,YAAY;IAQ7E,SAAS,IAAI,IAAI;CAKpB"}
|
package/dist/EngineWorklet.js
CHANGED
|
@@ -4,6 +4,7 @@ import { AnimationFrame } from "@opendaw/lib-dom";
|
|
|
4
4
|
import { Communicator, Messenger } from "@opendaw/lib-runtime";
|
|
5
5
|
import { EngineSettingsSchema, EngineStateSchema, ExportStemsConfiguration, PreferencesHost } from "@opendaw/studio-adapters";
|
|
6
6
|
import { MIDIReceiver } from "./midi";
|
|
7
|
+
import { HRClockWorker } from "./HRClockWorker";
|
|
7
8
|
export class EngineWorklet extends AudioWorkletNode {
|
|
8
9
|
static ID = 0 | 0;
|
|
9
10
|
id = EngineWorklet.ID++;
|
|
@@ -24,6 +25,8 @@ export class EngineWorklet extends AudioWorkletNode {
|
|
|
24
25
|
#playingClips;
|
|
25
26
|
#commands;
|
|
26
27
|
#isReady;
|
|
28
|
+
#perfBuffer = new Float32Array(0);
|
|
29
|
+
#perfIndex = 0;
|
|
27
30
|
constructor(context, project, exportConfiguration, options) {
|
|
28
31
|
const numberOfChannels = ExportStemsConfiguration.countStems(Option.wrap(exportConfiguration)) * 2;
|
|
29
32
|
const reader = SyncStream.reader(EngineStateSchema(), state => {
|
|
@@ -33,6 +36,8 @@ export class EngineWorklet extends AudioWorkletNode {
|
|
|
33
36
|
this.#countInBeatsRemaining.setValue(state.countInBeatsRemaining);
|
|
34
37
|
this.#playbackTimestamp.setValue(state.playbackTimestamp);
|
|
35
38
|
this.#bpm.setValue(state.bpm);
|
|
39
|
+
this.#perfBuffer = state.perfBuffer;
|
|
40
|
+
this.#perfIndex = state.perfIndex;
|
|
36
41
|
this.#position.setValue(state.position); // This must be the last to handle the state values before
|
|
37
42
|
});
|
|
38
43
|
const controlFlagsSAB = new SharedArrayBuffer(4); // 4 bytes minimum
|
|
@@ -43,15 +48,16 @@ export class EngineWorklet extends AudioWorkletNode {
|
|
|
43
48
|
processorOptions: {
|
|
44
49
|
syncStreamBuffer: reader.buffer,
|
|
45
50
|
controlFlagsBuffer: controlFlagsSAB,
|
|
51
|
+
hrClockBuffer: HRClockWorker.get().sab,
|
|
46
52
|
project: project.toArrayBuffer(),
|
|
47
53
|
exportConfiguration,
|
|
48
54
|
options
|
|
49
55
|
}
|
|
50
56
|
});
|
|
51
|
-
const { resolve, promise } = Promise.withResolvers();
|
|
57
|
+
const { resolve, promise: isReady } = Promise.withResolvers();
|
|
52
58
|
const messenger = Messenger.for(this.port);
|
|
53
59
|
this.#project = project;
|
|
54
|
-
this.#isReady =
|
|
60
|
+
this.#isReady = isReady;
|
|
55
61
|
this.#notifyClipNotification = this.#terminator.own(new Notifier());
|
|
56
62
|
this.#notifyNoteSignals = this.#terminator.own(new Notifier());
|
|
57
63
|
this.#playingClips = [];
|
|
@@ -170,6 +176,8 @@ export class EngineWorklet extends AudioWorkletNode {
|
|
|
170
176
|
get markerState() { return this.#markerState; }
|
|
171
177
|
get project() { return this.#project; }
|
|
172
178
|
get preferences() { return this.#preferences; }
|
|
179
|
+
get perfBuffer() { return this.#perfBuffer; }
|
|
180
|
+
get perfIndex() { return this.#perfIndex; }
|
|
173
181
|
isReady() { return this.#isReady; }
|
|
174
182
|
queryLoadingComplete() { return this.#commands.queryLoadingComplete(); }
|
|
175
183
|
noteSignal(signal) { this.#commands.noteSignal(signal); }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HRClockWorker.d.ts","sourceRoot":"","sources":["../src/HRClockWorker.ts"],"names":[],"mappings":"AAKA,qBAAa,aAAa;;IAEtB,MAAM,CAAC,GAAG,IAAI,aAAa;IAE3B,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAA;IAG/B,OAAO;CA+BV"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
// Singleton - one clock worker shared across engine instances
|
|
11
|
+
import { Lazy } from "@opendaw/lib-std";
|
|
12
|
+
let instance;
|
|
13
|
+
export class HRClockWorker {
|
|
14
|
+
static get() { return new HRClockWorker(); }
|
|
15
|
+
sab;
|
|
16
|
+
#worker;
|
|
17
|
+
constructor() {
|
|
18
|
+
// Layout (32 bytes):
|
|
19
|
+
// int32[0]: request counter
|
|
20
|
+
// int32[1]: start response counter (which request this start timestamp is for)
|
|
21
|
+
// int32[2]: end response counter (which request this end timestamp is for)
|
|
22
|
+
// float64[2]: start timestamp (bytes 16-23)
|
|
23
|
+
// float64[3]: end timestamp (bytes 24-31)
|
|
24
|
+
this.sab = new SharedArrayBuffer(32);
|
|
25
|
+
const code = `
|
|
26
|
+
onmessage = (e) => {
|
|
27
|
+
const int32 = new Int32Array(e.data)
|
|
28
|
+
const float64 = new Float64Array(e.data)
|
|
29
|
+
let lastCounter = 0
|
|
30
|
+
while (true) {
|
|
31
|
+
Atomics.wait(int32, 0, lastCounter)
|
|
32
|
+
lastCounter = Atomics.load(int32, 0)
|
|
33
|
+
const isStart = (lastCounter & 1) === 1
|
|
34
|
+
if (isStart) {
|
|
35
|
+
float64[2] = performance.now()
|
|
36
|
+
Atomics.store(int32, 1, lastCounter)
|
|
37
|
+
} else {
|
|
38
|
+
float64[3] = performance.now()
|
|
39
|
+
Atomics.store(int32, 2, lastCounter)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
const blob = new Blob([code], { type: "application/javascript" });
|
|
45
|
+
this.#worker = new Worker(URL.createObjectURL(blob));
|
|
46
|
+
this.#worker.postMessage(this.sab);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
__decorate([
|
|
50
|
+
Lazy,
|
|
51
|
+
__metadata("design:type", Function),
|
|
52
|
+
__metadata("design:paramtypes", []),
|
|
53
|
+
__metadata("design:returntype", HRClockWorker)
|
|
54
|
+
], HRClockWorker, "get", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineEngineRenderer.d.ts","sourceRoot":"","sources":["../src/OfflineEngineRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAa,MAAM,EAAS,QAAQ,
|
|
1
|
+
{"version":3,"file":"OfflineEngineRenderer.d.ts","sourceRoot":"","sources":["../src/OfflineEngineRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAa,MAAM,EAAS,QAAQ,EAA6B,MAAM,kBAAkB,CAAA;AAC5G,OAAO,EAAC,SAAS,EAAO,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAGH,wBAAwB,EAIxB,yBAAyB,EAC5B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAOjC,qBAAa,qBAAqB;;IAC9B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKjC,MAAM,CAAC,YAAY,IAAI,MAAM;WAIhB,MAAM,CAAC,MAAM,EAAE,OAAO,EACf,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC,EACxD,UAAU,GAAE,GAAY,GACzC,OAAO,CAAC,qBAAqB,CAAC;WAmHpB,KAAK,CAAC,MAAM,EAAE,OAAO,EACf,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC,EACxD,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAC1B,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,GAAE,GAAY,GACxC,OAAO,CAAC,SAAS,CAAC;IAwBrB,OAAO;IAkBP,IAAI,UAAU,IAAI,GAAG,CAA0B;IAC/C,IAAI,gBAAgB,IAAI,GAAG,CAAgC;IAC3D,IAAI,WAAW,IAAI,GAAG,CAA2B;IAEjD,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAKZ,SAAS,IAAI,IAAI;IAKX,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAM3C,MAAM,CACR,MAAM,EAAE,yBAAyB,EACjC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAC1B,WAAW,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,SAAS,CAAC;CAqCxB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Errors, isDefined, Option, panic, Terminator } from "@opendaw/lib-std";
|
|
1
|
+
import { Errors, isDefined, Option, panic, Terminator, TimeSpan } from "@opendaw/lib-std";
|
|
2
2
|
import { AudioData } from "@opendaw/lib-dsp";
|
|
3
|
-
import { Communicator, Messenger } from "@opendaw/lib-runtime";
|
|
3
|
+
import { Communicator, Messenger, Wait } from "@opendaw/lib-runtime";
|
|
4
4
|
import { ExportStemsConfiguration } from "@opendaw/studio-adapters";
|
|
5
5
|
import { AudioWorklets } from "./AudioWorklets";
|
|
6
6
|
import { MIDIReceiver } from "./midi";
|
|
@@ -170,6 +170,9 @@ export class OfflineEngineRenderer {
|
|
|
170
170
|
};
|
|
171
171
|
}
|
|
172
172
|
this.#progressPort.onmessage = (event) => progress(event.data.frames / this.#sampleRate);
|
|
173
|
+
while (!await this.#engineCommands.queryLoadingComplete()) {
|
|
174
|
+
await Wait.timeSpan(TimeSpan.millis(100));
|
|
175
|
+
}
|
|
173
176
|
this.play();
|
|
174
177
|
this.#protocol.render(config).then(channels => {
|
|
175
178
|
if (cancelled) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { int, Observer, Option, Subscription, Terminable, UUID } from "@opendaw/lib-std";
|
|
1
|
+
import { int, Observer, Option, Procedure, Subscription, Terminable, UUID } from "@opendaw/lib-std";
|
|
2
2
|
import { AudioData } from "@opendaw/lib-dsp";
|
|
3
3
|
import { Peaks } from "@opendaw/lib-fusion";
|
|
4
4
|
import { RingBuffer, SampleLoader, SampleLoaderState } from "@opendaw/studio-adapters";
|
|
@@ -8,6 +8,7 @@ export declare class RecordingWorklet extends AudioWorkletNode implements Termin
|
|
|
8
8
|
constructor(context: BaseAudioContext, config: RingBuffer.Config);
|
|
9
9
|
own<T extends Terminable>(terminable: T): T;
|
|
10
10
|
limit(count: int): void;
|
|
11
|
+
set onSaved(callback: Procedure<UUID.Bytes>);
|
|
11
12
|
setFillLength(value: int): void;
|
|
12
13
|
get numberOfFrames(): int;
|
|
13
14
|
get data(): Option<AudioData>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordingWorklet.d.ts","sourceRoot":"","sources":["../src/RecordingWorklet.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,GAAG,EAEH,QAAQ,EACR,MAAM,
|
|
1
|
+
{"version":3,"file":"RecordingWorklet.d.ts","sourceRoot":"","sources":["../src/RecordingWorklet.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,GAAG,EAEH,QAAQ,EACR,MAAM,EAEN,SAAS,EAET,YAAY,EACZ,UAAU,EAEV,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,SAAS,EAAW,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAC,KAAK,EAAc,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAEH,UAAU,EACV,YAAY,EACZ,iBAAiB,EAEpB,MAAM,0BAA0B,CAAA;AAMjC,qBAAa,gBAAiB,SAAQ,gBAAiB,YAAW,UAAU,EAAE,YAAY;;IAGtF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAkB;gBAc/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;IAuBhE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC;IAE3C,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAOvB,IAAI,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAyC;IAEpF,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAE/B,IAAI,cAAc,IAAI,GAAG,CAA6C;IACtE,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,CAAoB;IACjD,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAA6E;IACvG,IAAI,KAAK,IAAI,iBAAiB,CAAqB;IAEnD,UAAU,IAAI,IAAI;IAElB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,YAAY;IAQ9D,SAAS,IAAI,IAAI;IAMjB,QAAQ,IAAI,MAAM;CAsCrB"}
|
package/dist/RecordingWorklet.js
CHANGED
|
@@ -18,6 +18,7 @@ export class RecordingWorklet extends AudioWorkletNode {
|
|
|
18
18
|
#isRecording = true;
|
|
19
19
|
#limitSamples = Number.POSITIVE_INFINITY;
|
|
20
20
|
#state = { type: "record" };
|
|
21
|
+
#onSaved = Option.None;
|
|
21
22
|
constructor(context, config) {
|
|
22
23
|
super(context, "recording-processor", {
|
|
23
24
|
numberOfInputs: 1,
|
|
@@ -40,7 +41,13 @@ export class RecordingWorklet extends AudioWorkletNode {
|
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
43
|
own(terminable) { return this.#terminator.own(terminable); }
|
|
43
|
-
limit(count) {
|
|
44
|
+
limit(count) {
|
|
45
|
+
this.#limitSamples = count;
|
|
46
|
+
if (this.numberOfFrames >= this.#limitSamples) {
|
|
47
|
+
this.#finalize().catch(error => console.warn(error));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
set onSaved(callback) { this.#onSaved = Option.wrap(callback); }
|
|
44
51
|
setFillLength(value) { this.#peakWriter.numFrames = value; }
|
|
45
52
|
get numberOfFrames() { return this.#output.length * RenderQuantum; }
|
|
46
53
|
get data() { return this.#data; }
|
|
@@ -88,6 +95,7 @@ export class RecordingWorklet extends AudioWorkletNode {
|
|
|
88
95
|
meta
|
|
89
96
|
};
|
|
90
97
|
await SampleStorage.get().save(sample);
|
|
98
|
+
this.#onSaved.ifSome(callback => callback(this.uuid));
|
|
91
99
|
this.#setState({ type: "loaded" });
|
|
92
100
|
this.terminate();
|
|
93
101
|
return sample;
|
package/dist/Storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../src/Storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAIrC,8BAAsB,OAAO,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM;IAA7C,SAAS,aAAsB,MAAM,EAAE,MAAM;IAE7C,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAEzC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../src/Storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAIrC,8BAAsB,OAAO,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM;IAA7C,SAAS,aAAsB,MAAM,EAAE,MAAM;IAE7C,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAEzC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAK7C,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;CAgB7C"}
|
package/dist/Storage.js
CHANGED
|
@@ -8,6 +8,7 @@ export class Storage {
|
|
|
8
8
|
}
|
|
9
9
|
async deleteItem(uuid) {
|
|
10
10
|
const path = `${this.folder}/${UUID.toString(uuid)}`;
|
|
11
|
+
console.debug(`deleteItem '${path}'`);
|
|
11
12
|
const uuids = await this.loadTrashedIds();
|
|
12
13
|
uuids.push(UUID.toString(uuid));
|
|
13
14
|
await this.saveTrashedIds(uuids);
|
|
@@ -20,12 +20,20 @@ export declare const StudioPreferences: import("@opendaw/lib-fusion").Preference
|
|
|
20
20
|
"modifying-controls-wheel": boolean;
|
|
21
21
|
"normalize-mouse-wheel": boolean;
|
|
22
22
|
};
|
|
23
|
+
editing: {
|
|
24
|
+
"overlapping-regions-behaviour": "clip" | "push-existing" | "keep-existing";
|
|
25
|
+
"show-clipboard-menu": boolean;
|
|
26
|
+
};
|
|
23
27
|
debug: {
|
|
24
28
|
"footer-show-fps-meter": boolean;
|
|
25
29
|
"footer-show-samples-memory": boolean;
|
|
26
30
|
"footer-show-build-infos": boolean;
|
|
31
|
+
"show-cpu-stats": boolean;
|
|
27
32
|
"enable-beta-features": boolean;
|
|
28
33
|
"enable-debug-menu": boolean;
|
|
29
34
|
};
|
|
35
|
+
storage: {
|
|
36
|
+
"auto-delete-orphaned-samples": boolean;
|
|
37
|
+
};
|
|
30
38
|
}>;
|
|
31
39
|
//# sourceMappingURL=StudioPreferences.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StudioPreferences.d.ts","sourceRoot":"","sources":["../src/StudioPreferences.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"StudioPreferences.d.ts","sourceRoot":"","sources":["../src/StudioPreferences.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAwD,CAAA"}
|
package/dist/StudioSettings.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export declare const FpsOptions: readonly [24, 25, 29.97, 30];
|
|
3
|
+
export declare const OverlappingRegionsBehaviourOptions: readonly ["clip", "push-existing", "keep-existing"];
|
|
3
4
|
export declare const StudioSettingsSchema: z.ZodObject<{
|
|
4
5
|
visibility: z.ZodDefault<z.ZodObject<{
|
|
5
6
|
"visible-help-hints": z.ZodBoolean;
|
|
@@ -22,13 +23,25 @@ export declare const StudioSettingsSchema: z.ZodObject<{
|
|
|
22
23
|
"modifying-controls-wheel": z.ZodBoolean;
|
|
23
24
|
"normalize-mouse-wheel": z.ZodBoolean;
|
|
24
25
|
}, z.core.$strip>>;
|
|
26
|
+
editing: z.ZodDefault<z.ZodObject<{
|
|
27
|
+
"overlapping-regions-behaviour": z.ZodEnum<{
|
|
28
|
+
clip: "clip";
|
|
29
|
+
"push-existing": "push-existing";
|
|
30
|
+
"keep-existing": "keep-existing";
|
|
31
|
+
}>;
|
|
32
|
+
"show-clipboard-menu": z.ZodBoolean;
|
|
33
|
+
}, z.core.$strip>>;
|
|
25
34
|
debug: z.ZodDefault<z.ZodObject<{
|
|
26
35
|
"footer-show-fps-meter": z.ZodBoolean;
|
|
27
36
|
"footer-show-samples-memory": z.ZodBoolean;
|
|
28
37
|
"footer-show-build-infos": z.ZodBoolean;
|
|
38
|
+
"show-cpu-stats": z.ZodBoolean;
|
|
29
39
|
"enable-beta-features": z.ZodBoolean;
|
|
30
40
|
"enable-debug-menu": z.ZodBoolean;
|
|
31
41
|
}, z.core.$strip>>;
|
|
42
|
+
storage: z.ZodDefault<z.ZodObject<{
|
|
43
|
+
"auto-delete-orphaned-samples": z.ZodBoolean;
|
|
44
|
+
}, z.core.$strip>>;
|
|
32
45
|
}, z.core.$strip>;
|
|
33
46
|
export type StudioSettings = z.infer<typeof StudioSettingsSchema>;
|
|
34
47
|
//# sourceMappingURL=StudioSettings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StudioSettings.d.ts","sourceRoot":"","sources":["../src/StudioSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAGrB,eAAO,MAAM,UAAU,8BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"StudioSettings.d.ts","sourceRoot":"","sources":["../src/StudioSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAGrB,eAAO,MAAM,UAAU,8BAA+B,CAAA;AACtD,eAAO,MAAM,kCAAkC,qDAAsD,CAAA;AAErG,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6D/B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
|
package/dist/StudioSettings.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { Browser } from "@opendaw/lib-dom";
|
|
3
3
|
export const FpsOptions = [24, 25, 29.97, 30];
|
|
4
|
+
export const OverlappingRegionsBehaviourOptions = ["clip", "push-existing", "keep-existing"];
|
|
4
5
|
export const StudioSettingsSchema = z.object({
|
|
5
6
|
"visibility": z.object({
|
|
6
7
|
"visible-help-hints": z.boolean(),
|
|
@@ -35,17 +36,31 @@ export const StudioSettingsSchema = z.object({
|
|
|
35
36
|
"modifying-controls-wheel": false,
|
|
36
37
|
"normalize-mouse-wheel": true
|
|
37
38
|
}),
|
|
39
|
+
"editing": z.object({
|
|
40
|
+
"overlapping-regions-behaviour": z.enum(OverlappingRegionsBehaviourOptions),
|
|
41
|
+
"show-clipboard-menu": z.boolean()
|
|
42
|
+
}).default({
|
|
43
|
+
"overlapping-regions-behaviour": "clip",
|
|
44
|
+
"show-clipboard-menu": false
|
|
45
|
+
}),
|
|
38
46
|
"debug": z.object({
|
|
39
47
|
"footer-show-fps-meter": z.boolean(),
|
|
40
48
|
"footer-show-samples-memory": z.boolean(),
|
|
41
49
|
"footer-show-build-infos": z.boolean(),
|
|
50
|
+
"show-cpu-stats": z.boolean(),
|
|
42
51
|
"enable-beta-features": z.boolean(),
|
|
43
52
|
"enable-debug-menu": z.boolean()
|
|
44
53
|
}).default({
|
|
45
54
|
"footer-show-fps-meter": false,
|
|
46
55
|
"footer-show-samples-memory": false,
|
|
47
56
|
"footer-show-build-infos": false,
|
|
57
|
+
"show-cpu-stats": false,
|
|
48
58
|
"enable-beta-features": false,
|
|
49
59
|
"enable-debug-menu": false
|
|
60
|
+
}),
|
|
61
|
+
"storage": z.object({
|
|
62
|
+
"auto-delete-orphaned-samples": z.boolean()
|
|
63
|
+
}).default({
|
|
64
|
+
"auto-delete-orphaned-samples": false
|
|
50
65
|
})
|
|
51
66
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaptureAudio.d.ts","sourceRoot":"","sources":["../../src/capture/CaptureAudio.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,uBAAuB,EAEvB,MAAM,EAEN,UAAU,EACb,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAM/C,qBAAa,YAAa,SAAQ,OAAO,CAAC,eAAe,CAAC;;
|
|
1
|
+
{"version":3,"file":"CaptureAudio.d.ts","sourceRoot":"","sources":["../../src/capture/CaptureAudio.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,uBAAuB,EAEvB,MAAM,EAEN,UAAU,EACb,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAM/C,qBAAa,YAAa,SAAQ,OAAO,CAAC,eAAe,CAAC;;gBAe1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe;IAkCjG,IAAI,YAAY,IAAI,OAAO,CAA4B;IACvD,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAS9B;IACD,IAAI,MAAM,IAAI,MAAM,CAAsB;IAC1C,IAAI,eAAe,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAA+B;IACnE,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAmD;IACnF,IAAI,MAAM,IAAI,uBAAuB,CAAC,WAAW,CAAC,CAAsB;IACxE,IAAI,cAAc,IAAI,MAAM,CAAC,MAAM,CAAC,CAEnC;IACD,IAAI,KAAK,IAAI,MAAM,CAAsE;IACzF,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,CAA+D;IAChG,IAAI,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAE/C;IACD,IAAI,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,CAAiD;IACpF,IAAI,qBAAqB,IAAI,MAAM,CAA6C;IAE1E,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BvC,cAAc,IAAI,UAAU;CAsG/B"}
|