@opendaw/studio-core 0.0.111 → 0.0.113
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/AssetService.d.ts.map +1 -1
- package/dist/AssetService.js +15 -4
- package/dist/AudioUnitFreeze.d.ts +15 -0
- package/dist/AudioUnitFreeze.d.ts.map +1 -0
- package/dist/AudioUnitFreeze.js +129 -0
- package/dist/Engine.d.ts +1 -0
- package/dist/Engine.d.ts.map +1 -1
- package/dist/EngineFacade.d.ts +1 -0
- package/dist/EngineFacade.d.ts.map +1 -1
- package/dist/EngineFacade.js +3 -0
- package/dist/EngineWorklet.d.ts +1 -0
- package/dist/EngineWorklet.d.ts.map +1 -1
- package/dist/EngineWorklet.js +4 -0
- package/dist/FilePickerAcceptTypes.d.ts +1 -0
- package/dist/FilePickerAcceptTypes.d.ts.map +1 -1
- package/dist/FilePickerAcceptTypes.js +4 -0
- package/dist/OfflineEngineRenderer.d.ts.map +1 -1
- package/dist/OfflineEngineRenderer.js +1 -0
- package/dist/StudioPreferences.d.ts +1 -0
- package/dist/StudioPreferences.d.ts.map +1 -1
- package/dist/StudioSettings.d.ts +1 -0
- package/dist/StudioSettings.d.ts.map +1 -1
- package/dist/StudioSettings.js +4 -2
- package/dist/capture/CaptureDevices.d.ts.map +1 -1
- package/dist/capture/CaptureDevices.js +6 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/offline-engine.js.map +1 -1
- package/dist/processors.js +8 -8
- package/dist/processors.js.map +4 -4
- package/dist/project/Project.d.ts +2 -0
- package/dist/project/Project.d.ts.map +1 -1
- package/dist/project/Project.js +3 -0
- package/dist/project/ProjectApi.d.ts +3 -3
- package/dist/project/ProjectApi.d.ts.map +1 -1
- package/dist/project/ProjectApi.js +3 -0
- package/dist/project/audio/AudioContentHelpers.d.ts +2 -2
- package/dist/project/audio/AudioContentHelpers.d.ts.map +1 -1
- package/dist/project/audio/AudioContentHelpers.js +1 -1
- package/dist/project/audio/AudioContentModifier.d.ts.map +1 -1
- package/dist/project/audio/AudioContentModifier.js +8 -7
- package/dist/samples/SampleService.d.ts +1 -0
- package/dist/samples/SampleService.d.ts.map +1 -1
- package/dist/samples/SampleService.js +24 -19
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +1 -0
- package/dist/ui/renderer/audio.d.ts +9 -0
- package/dist/ui/renderer/audio.d.ts.map +1 -0
- package/dist/ui/renderer/audio.js +277 -0
- package/dist/ui/renderer/env.d.ts +5 -0
- package/dist/ui/renderer/env.d.ts.map +1 -0
- package/dist/ui/renderer/env.js +1 -0
- package/dist/ui/renderer/fading.d.ts +7 -0
- package/dist/ui/renderer/fading.d.ts.map +1 -0
- package/dist/ui/renderer/fading.js +55 -0
- package/dist/ui/renderer/index.d.ts +6 -0
- package/dist/ui/renderer/index.d.ts.map +1 -0
- package/dist/ui/renderer/index.js +5 -0
- package/dist/ui/renderer/notes.d.ts +7 -0
- package/dist/ui/renderer/notes.d.ts.map +1 -0
- package/dist/ui/renderer/notes.js +23 -0
- package/dist/ui/renderer/value.d.ts +7 -0
- package/dist/ui/renderer/value.d.ts.map +1 -0
- package/dist/ui/renderer/value.js +101 -0
- package/dist/ui/timeline/RegionClipResolver.d.ts.map +1 -1
- package/dist/ui/timeline/RegionClipResolver.js +19 -23
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetService.d.ts","sourceRoot":"","sources":["../src/AssetService.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EAML,SAAS,EACT,QAAQ,EAER,IAAI,EACP,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,uBAAuB,CAAA;AAEpE,yBAAiB,YAAY,CAAC;IAC1B,KAAY,UAAU,GAAG;QACrB,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,WAAW,CAAC;QACzB,eAAe,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAA;KACrC,CAAA;CACJ;AAED,8BAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS;IAMrC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAL/D,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAChD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC9C,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAA;IAC3E,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;IAEhE,SAAS,aAAgC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzD,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAI1D,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IAExD,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE;QAAE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"AssetService.d.ts","sourceRoot":"","sources":["../src/AssetService.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EAML,SAAS,EACT,QAAQ,EAER,IAAI,EACP,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,uBAAuB,CAAA;AAEpE,yBAAiB,YAAY,CAAC;IAC1B,KAAY,UAAU,GAAG;QACrB,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,WAAW,CAAC;QACzB,eAAe,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAA;KACrC,CAAA;CACJ;AAED,8BAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS;IAMrC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAL/D,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAChD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC9C,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAA;IAC3E,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;IAEhE,SAAS,aAAgC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzD,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAI1D,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IAExD,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE;QAAE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAsCjG,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAoChH,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAClE"}
|
package/dist/AssetService.js
CHANGED
|
@@ -42,8 +42,15 @@ export class AssetService {
|
|
|
42
42
|
if (files.length === 0) {
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
|
-
const
|
|
46
|
-
|
|
45
|
+
const readResult = await Promises.tryCatch(files[0].arrayBuffer());
|
|
46
|
+
if (readResult.status === "rejected") {
|
|
47
|
+
await RuntimeNotifier.info({
|
|
48
|
+
headline: "File Read Error",
|
|
49
|
+
message: `'${files[0].name}' could not be read. The file may be on an inaccessible location.`
|
|
50
|
+
});
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const asset = await this.importFile({ uuid, arrayBuffer: readResult.value, progressHandler: Progress.Empty });
|
|
47
54
|
await RuntimeNotifier.info({
|
|
48
55
|
headline: "Replaced Asset",
|
|
49
56
|
message: `${asset.name} has been replaced`
|
|
@@ -69,10 +76,14 @@ export class AssetService {
|
|
|
69
76
|
const rejected = [];
|
|
70
77
|
const imported = [];
|
|
71
78
|
for (const [index, file] of files.entries()) {
|
|
72
|
-
const
|
|
79
|
+
const readResult = await Promises.tryCatch(file.arrayBuffer());
|
|
80
|
+
if (readResult.status === "rejected") {
|
|
81
|
+
rejected.push(`'${file.name}' could not be read`);
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
73
84
|
const { status, value, error } = await Promises.tryCatch(this.importFile({
|
|
74
85
|
name: file.name,
|
|
75
|
-
arrayBuffer:
|
|
86
|
+
arrayBuffer: readResult.value,
|
|
76
87
|
progressHandler: progressHandler[index]
|
|
77
88
|
}));
|
|
78
89
|
if (status === "rejected") {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Observer, Subscription, Terminable, UUID } from "@opendaw/lib-std";
|
|
2
|
+
import { AudioUnitBoxAdapter } from "@opendaw/studio-adapters";
|
|
3
|
+
import type { Project } from "./project";
|
|
4
|
+
export declare class AudioUnitFreeze implements Terminable {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(project: Project);
|
|
7
|
+
isFrozen(audioUnitBoxAdapter: AudioUnitBoxAdapter): boolean;
|
|
8
|
+
isFrozenUuid(uuid: UUID.Bytes): boolean;
|
|
9
|
+
subscribe(observer: Observer<UUID.Bytes>): Subscription;
|
|
10
|
+
hasSidechainDependents(audioUnitBoxAdapter: AudioUnitBoxAdapter): boolean;
|
|
11
|
+
freeze(audioUnitBoxAdapter: AudioUnitBoxAdapter): Promise<void>;
|
|
12
|
+
unfreeze(audioUnitBoxAdapter: AudioUnitBoxAdapter): void;
|
|
13
|
+
terminate(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=AudioUnitFreeze.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioUnitFreeze.d.ts","sourceRoot":"","sources":["../src/AudioUnitFreeze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,QAAQ,EAA2B,YAAY,EAAE,UAAU,EAAc,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAGhI,OAAO,EAAC,mBAAmB,EAA2B,MAAM,0BAA0B,CAAA;AAItF,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAItC,qBAAa,eAAgB,YAAW,UAAU;;gBAMlC,OAAO,EAAE,OAAO;IAU5B,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,OAAO;IAI3D,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO;IAIvC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY;IAEvD,sBAAsB,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,OAAO;IAoBnE,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiErE,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,IAAI;IAIxD,SAAS,IAAI,IAAI;CAwBpB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Errors, Notifier, Option, RuntimeNotifier, Terminator, UUID } from "@opendaw/lib-std";
|
|
2
|
+
import { Promises } from "@opendaw/lib-runtime";
|
|
3
|
+
import { OfflineEngineRenderer } from "./OfflineEngineRenderer";
|
|
4
|
+
export class AudioUnitFreeze {
|
|
5
|
+
#project;
|
|
6
|
+
#terminator = new Terminator();
|
|
7
|
+
#frozenAudioUnits = new Map();
|
|
8
|
+
#notifier = new Notifier();
|
|
9
|
+
constructor(project) {
|
|
10
|
+
this.#project = project;
|
|
11
|
+
const { timelineBoxAdapter } = project;
|
|
12
|
+
this.#terminator.ownAll(timelineBoxAdapter.box.bpm.subscribe(() => this.#unfreezeAll()), timelineBoxAdapter.catchupAndSubscribeTempoAutomation(() => this.#unfreezeAll()));
|
|
13
|
+
}
|
|
14
|
+
isFrozen(audioUnitBoxAdapter) {
|
|
15
|
+
return this.#frozenAudioUnits.has(UUID.toString(audioUnitBoxAdapter.uuid));
|
|
16
|
+
}
|
|
17
|
+
isFrozenUuid(uuid) {
|
|
18
|
+
return this.#frozenAudioUnits.has(UUID.toString(uuid));
|
|
19
|
+
}
|
|
20
|
+
subscribe(observer) { return this.#notifier.subscribe(observer); }
|
|
21
|
+
hasSidechainDependents(audioUnitBoxAdapter) {
|
|
22
|
+
const targetAddresses = [];
|
|
23
|
+
for (const output of audioUnitBoxAdapter.labeledAudioOutputs()) {
|
|
24
|
+
targetAddresses.push(output.address);
|
|
25
|
+
}
|
|
26
|
+
if (targetAddresses.length === 0) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const edges = audioUnitBoxAdapter.box.graph.edges();
|
|
30
|
+
for (const otherUnit of this.#project.rootBoxAdapter.audioUnits.adapters()) {
|
|
31
|
+
if (UUID.equals(otherUnit.uuid, audioUnitBoxAdapter.uuid)) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
for (const effect of otherUnit.audioEffects.adapters()) {
|
|
35
|
+
for (const [_, target] of edges.outgoingEdgesOf(effect.box)) {
|
|
36
|
+
if (targetAddresses.some(addr => addr.equals(target))) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
async freeze(audioUnitBoxAdapter) {
|
|
45
|
+
const { engine } = this.#project;
|
|
46
|
+
if (this.hasSidechainDependents(audioUnitBoxAdapter)) {
|
|
47
|
+
await RuntimeNotifier.info({
|
|
48
|
+
headline: "Cannot Freeze",
|
|
49
|
+
message: "This audio unit is used as a sidechain source by another device."
|
|
50
|
+
});
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const audioUnitUuid = UUID.toString(audioUnitBoxAdapter.uuid);
|
|
54
|
+
const exportConfiguration = {
|
|
55
|
+
[audioUnitUuid]: {
|
|
56
|
+
includeAudioEffects: true,
|
|
57
|
+
includeSends: false,
|
|
58
|
+
useInstrumentOutput: false,
|
|
59
|
+
skipChannelStrip: true,
|
|
60
|
+
fileName: "freeze"
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const copiedProject = this.#project.copy();
|
|
64
|
+
const abortController = new AbortController();
|
|
65
|
+
const dialog = RuntimeNotifier.progress({
|
|
66
|
+
headline: "Freezing AudioUnit...",
|
|
67
|
+
cancel: () => abortController.abort()
|
|
68
|
+
});
|
|
69
|
+
const renderResult = await Promises.tryCatch(OfflineEngineRenderer.start(copiedProject, Option.wrap(exportConfiguration), progress => dialog.message = `${Math.round(progress)}s rendered`, abortController.signal, engine.sampleRate));
|
|
70
|
+
if (renderResult.status === "rejected") {
|
|
71
|
+
dialog.terminate();
|
|
72
|
+
if (!Errors.isAbort(renderResult.error)) {
|
|
73
|
+
await RuntimeNotifier.info({ headline: "Freeze Failed", message: String(renderResult.error) });
|
|
74
|
+
}
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
dialog.terminate();
|
|
78
|
+
const audioData = renderResult.value;
|
|
79
|
+
engine.setFrozenAudio(audioUnitBoxAdapter.uuid, audioData);
|
|
80
|
+
const { regionSelection, userEditingManager } = this.#project;
|
|
81
|
+
const frozenRegions = regionSelection.selected()
|
|
82
|
+
.filter(region => region.trackBoxAdapter
|
|
83
|
+
.mapOr(track => UUID.equals(track.audioUnit.address.uuid, audioUnitBoxAdapter.uuid), false));
|
|
84
|
+
if (frozenRegions.length > 0) {
|
|
85
|
+
regionSelection.deselect(...frozenRegions);
|
|
86
|
+
}
|
|
87
|
+
userEditingManager.timeline.get().ifSome(vertex => {
|
|
88
|
+
const regionUuid = vertex.box.address.uuid;
|
|
89
|
+
for (const track of audioUnitBoxAdapter.tracks.values()) {
|
|
90
|
+
if (track.regions.collection.asArray().some(region => UUID.equals(region.uuid, regionUuid))) {
|
|
91
|
+
userEditingManager.timeline.clear();
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
this.#project.captureDevices.get(audioUnitBoxAdapter.uuid)
|
|
97
|
+
.ifSome(capture => capture.armed.setValue(false));
|
|
98
|
+
const deletionSubscription = audioUnitBoxAdapter.box.subscribeDeletion(() => this.#removeFrozen(audioUnitBoxAdapter.uuid, audioUnitUuid));
|
|
99
|
+
this.#frozenAudioUnits.set(audioUnitUuid, { audioData, deletionSubscription });
|
|
100
|
+
this.#notifier.notify(audioUnitBoxAdapter.uuid);
|
|
101
|
+
}
|
|
102
|
+
unfreeze(audioUnitBoxAdapter) {
|
|
103
|
+
this.#removeFrozen(audioUnitBoxAdapter.uuid, UUID.toString(audioUnitBoxAdapter.uuid));
|
|
104
|
+
}
|
|
105
|
+
terminate() {
|
|
106
|
+
this.#terminator.terminate();
|
|
107
|
+
for (const [key, entry] of this.#frozenAudioUnits) {
|
|
108
|
+
entry.deletionSubscription.terminate();
|
|
109
|
+
this.#project.engine.setFrozenAudio(UUID.parse(key), null);
|
|
110
|
+
}
|
|
111
|
+
this.#frozenAudioUnits.clear();
|
|
112
|
+
}
|
|
113
|
+
#unfreezeAll() {
|
|
114
|
+
const keys = Array.from(this.#frozenAudioUnits.keys());
|
|
115
|
+
for (const key of keys) {
|
|
116
|
+
this.#removeFrozen(UUID.parse(key), key);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
#removeFrozen(uuid, key) {
|
|
120
|
+
const entry = this.#frozenAudioUnits.get(key);
|
|
121
|
+
if (entry === undefined) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
entry.deletionSubscription.terminate();
|
|
125
|
+
this.#project.engine.setFrozenAudio(uuid, null);
|
|
126
|
+
this.#frozenAudioUnits.delete(key);
|
|
127
|
+
this.#notifier.notify(uuid);
|
|
128
|
+
}
|
|
129
|
+
}
|
package/dist/Engine.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface Engine extends Terminable {
|
|
|
17
17
|
sleep(): void;
|
|
18
18
|
wake(): void;
|
|
19
19
|
loadClickSound(index: 0 | 1, data: AudioData): void;
|
|
20
|
+
setFrozenAudio(uuid: UUID.Bytes, audioData: Nullable<AudioData>): void;
|
|
20
21
|
noteSignal(signal: NoteSignal): void;
|
|
21
22
|
subscribeNotes(observer: Observer<NoteSignal>): Subscription;
|
|
22
23
|
ignoreNoteRegion(uuid: UUID.Bytes): void;
|
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,gBAAgB;IAChB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,gBAAgB;IAChB,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;IAC7E,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACrF,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAElD,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,eAAe,CAAC,MAAM,CAAC,CAAA;IACtC,IAAI,OAAO,IAAI,OAAO,CAAA;IACtB,IAAI,WAAW,IAAI,iBAAiB,CAAA;IACpC,IAAI,UAAU,IAAI,YAAY,CAAA;IAC9B,IAAI,SAAS,IAAI,MAAM,CAAA;CAC1B"}
|
|
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,gBAAgB;IAChB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,gBAAgB;IAChB,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,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IACtE,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;IAC7E,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACrF,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAElD,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,eAAe,CAAC,MAAM,CAAC,CAAA;IACtC,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
|
@@ -35,6 +35,7 @@ export declare class EngineFacade implements Engine {
|
|
|
35
35
|
sleep(): void;
|
|
36
36
|
wake(): void;
|
|
37
37
|
loadClickSound(index: 0 | 1, data: AudioData): void;
|
|
38
|
+
setFrozenAudio(uuid: UUID.Bytes, audioData: Nullable<AudioData>): void;
|
|
38
39
|
subscribeClipNotification(observer: Observer<ClipNotification>): Subscription;
|
|
39
40
|
subscribeNotes(observer: Observer<NoteSignal>): Subscription;
|
|
40
41
|
ignoreNoteRegion(uuid: UUID.Bytes): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineFacade.d.ts","sourceRoot":"","sources":["../src/EngineFacade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EngineFacade.d.ts","sourceRoot":"","sources":["../src/EngineFacade.ts"],"names":[],"mappings":"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"}
|
package/dist/EngineFacade.js
CHANGED
|
@@ -70,6 +70,9 @@ export class EngineFacade {
|
|
|
70
70
|
loadClickSound(index, data) {
|
|
71
71
|
this.#worklet.ifSome(worklet => worklet.loadClickSound(index, data));
|
|
72
72
|
}
|
|
73
|
+
setFrozenAudio(uuid, audioData) {
|
|
74
|
+
this.#worklet.ifSome(worklet => worklet.setFrozenAudio(uuid, audioData));
|
|
75
|
+
}
|
|
73
76
|
subscribeClipNotification(observer) {
|
|
74
77
|
return this.#worklet.unwrap("No worklet to subscribeClipNotification").subscribeClipNotification(observer);
|
|
75
78
|
}
|
package/dist/EngineWorklet.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export declare class EngineWorklet extends AudioWorkletNode implements Engine {
|
|
|
17
17
|
sleep(): void;
|
|
18
18
|
wake(): void;
|
|
19
19
|
loadClickSound(index: 0 | 1, data: AudioData): void;
|
|
20
|
+
setFrozenAudio(uuid: UUID.Bytes, audioData: Nullable<AudioData>): void;
|
|
20
21
|
get isPlaying(): ObservableValue<boolean>;
|
|
21
22
|
get isRecording(): ObservableValue<boolean>;
|
|
22
23
|
get isCountingIn(): ObservableValue<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineWorklet.d.ts","sourceRoot":"","sources":["../src/EngineWorklet.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAEH,sBAAsB,EAEtB,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,YAAY,EAGZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAgB,MAAM,kBAAkB,CAAA;AAEpE,OAAO,EACH,gBAAgB,EAIhB,cAAc,EAKd,wBAAwB,EAExB,UAAU,EAEV,eAAe,EACf,gBAAgB,EACnB,MAAM,0BAA0B,CAAA;AAIjC,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;gBAgCpB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,OAAO,EAChB,mBAAmB,CAAC,EAAE,wBAAwB,EAC9C,OAAO,CAAC,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"EngineWorklet.d.ts","sourceRoot":"","sources":["../src/EngineWorklet.ts"],"names":[],"mappings":"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"}
|
package/dist/EngineWorklet.js
CHANGED
|
@@ -89,6 +89,9 @@ export class EngineWorklet extends AudioWorkletNode {
|
|
|
89
89
|
loadClickSound(index, data) {
|
|
90
90
|
dispatcher.dispatchAndForget(this.loadClickSound, index, data);
|
|
91
91
|
}
|
|
92
|
+
setFrozenAudio(uuid, audioData) {
|
|
93
|
+
dispatcher.dispatchAndForget(this.setFrozenAudio, uuid, audioData);
|
|
94
|
+
}
|
|
92
95
|
noteSignal(signal) { dispatcher.dispatchAndForget(this.noteSignal, signal); }
|
|
93
96
|
ignoreNoteRegion(uuid) {
|
|
94
97
|
dispatcher.dispatchAndForget(this.ignoreNoteRegion, uuid);
|
|
@@ -184,6 +187,7 @@ export class EngineWorklet extends AudioWorkletNode {
|
|
|
184
187
|
}
|
|
185
188
|
wake() { Atomics.store(this.#controlFlags, 0, 0); }
|
|
186
189
|
loadClickSound(index, data) { this.#commands.loadClickSound(index, data); }
|
|
190
|
+
setFrozenAudio(uuid, audioData) { this.#commands.setFrozenAudio(uuid, audioData); }
|
|
187
191
|
get isPlaying() { return this.#isPlaying; }
|
|
188
192
|
get isRecording() { return this.#isRecording; }
|
|
189
193
|
get isCountingIn() { return this.#isCountingIn; }
|
|
@@ -5,6 +5,7 @@ export declare namespace FilePickerAcceptTypes {
|
|
|
5
5
|
const ProjectFileType: FilePickerAcceptType;
|
|
6
6
|
const PresetFileType: FilePickerAcceptType;
|
|
7
7
|
const ProjectBundleFileType: FilePickerAcceptType;
|
|
8
|
+
const ZipFileType: FilePickerAcceptType;
|
|
8
9
|
const DawprojectFileType: FilePickerAcceptType;
|
|
9
10
|
const JsonFileType: FilePickerAcceptType;
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilePickerAcceptTypes.d.ts","sourceRoot":"","sources":["../src/FilePickerAcceptTypes.ts"],"names":[],"mappings":"AAAA,yBAAiB,qBAAqB,CAAC;IAC5B,MAAM,QAAQ,EAAE,iBAKtB,CAAA;IACM,MAAM,cAAc,EAAE,iBAK5B,CAAA;IACM,MAAM,cAAc,EAAE,iBAK5B,CAAA;IAEM,MAAM,eAAe,EAAE,oBAG7B,CAAA;IAEM,MAAM,cAAc,EAAE,oBAG5B,CAAA;IAEM,MAAM,qBAAqB,EAAE,oBAGnC,CAAA;IAEM,MAAM,kBAAkB,EAAE,oBAGhC,CAAA;IACM,MAAM,YAAY,EAAE,oBAG1B,CAAA;CACJ"}
|
|
1
|
+
{"version":3,"file":"FilePickerAcceptTypes.d.ts","sourceRoot":"","sources":["../src/FilePickerAcceptTypes.ts"],"names":[],"mappings":"AAAA,yBAAiB,qBAAqB,CAAC;IAC5B,MAAM,QAAQ,EAAE,iBAKtB,CAAA;IACM,MAAM,cAAc,EAAE,iBAK5B,CAAA;IACM,MAAM,cAAc,EAAE,iBAK5B,CAAA;IAEM,MAAM,eAAe,EAAE,oBAG7B,CAAA;IAEM,MAAM,cAAc,EAAE,oBAG5B,CAAA;IAEM,MAAM,qBAAqB,EAAE,oBAGnC,CAAA;IAEM,MAAM,WAAW,EAAE,oBAGzB,CAAA;IAEM,MAAM,kBAAkB,EAAE,oBAGhC,CAAA;IACM,MAAM,YAAY,EAAE,oBAG1B,CAAA;CACJ"}
|
|
@@ -30,6 +30,10 @@ export var FilePickerAcceptTypes;
|
|
|
30
30
|
description: "openDAW project bundle",
|
|
31
31
|
accept: { "application/octet-stream": [".odb"] }
|
|
32
32
|
};
|
|
33
|
+
FilePickerAcceptTypes.ZipFileType = {
|
|
34
|
+
description: "zip file",
|
|
35
|
+
accept: { "application/octet-stream": [".zip"] }
|
|
36
|
+
};
|
|
33
37
|
FilePickerAcceptTypes.DawprojectFileType = {
|
|
34
38
|
description: "dawproject",
|
|
35
39
|
accept: { "application/octet-stream": [".dawproject"] }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineEngineRenderer.d.ts","sourceRoot":"","sources":["../src/OfflineEngineRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"OfflineEngineRenderer.d.ts","sourceRoot":"","sources":["../src/OfflineEngineRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAuB,MAAM,EAAS,QAAQ,EAA6B,MAAM,kBAAkB,CAAA;AACtH,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAIH,wBAAwB,EAKxB,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;WAqHpB,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,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAI3B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC,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"}
|
|
@@ -92,6 +92,7 @@ export class OfflineEngineRenderer {
|
|
|
92
92
|
setupMIDI(port, buffer) { dispatcher.dispatchAndForget(this.setupMIDI, port, buffer); }
|
|
93
93
|
updateMonitoringMap(map) { dispatcher.dispatchAndForget(this.updateMonitoringMap, map); }
|
|
94
94
|
loadClickSound(index, data) { dispatcher.dispatchAndForget(this.loadClickSound, index, data); }
|
|
95
|
+
setFrozenAudio(uuid, audioData) { dispatcher.dispatchAndForget(this.setFrozenAudio, uuid, audioData); }
|
|
95
96
|
terminate() { dispatcher.dispatchAndForget(this.terminate); }
|
|
96
97
|
});
|
|
97
98
|
channel.port2.start();
|
|
@@ -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
|
@@ -7,6 +7,7 @@ export declare const StudioSettingsSchema: z.ZodObject<{
|
|
|
7
7
|
"enable-history-buttons": z.ZodBoolean;
|
|
8
8
|
"auto-open-clips": z.ZodBoolean;
|
|
9
9
|
"scrollbar-padding": z.ZodBoolean;
|
|
10
|
+
"base-frequency": z.ZodBoolean;
|
|
10
11
|
}, z.core.$strip>>;
|
|
11
12
|
"time-display": z.ZodDefault<z.ZodObject<{
|
|
12
13
|
musical: z.ZodBoolean;
|
|
@@ -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;AACtD,eAAO,MAAM,kCAAkC,qDAAsD,CAAA;AAErG,eAAO,MAAM,oBAAoB
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiE/B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
|
package/dist/StudioSettings.js
CHANGED
|
@@ -7,12 +7,14 @@ export const StudioSettingsSchema = z.object({
|
|
|
7
7
|
"visible-help-hints": z.boolean(),
|
|
8
8
|
"enable-history-buttons": z.boolean(),
|
|
9
9
|
"auto-open-clips": z.boolean(),
|
|
10
|
-
"scrollbar-padding": z.boolean()
|
|
10
|
+
"scrollbar-padding": z.boolean(),
|
|
11
|
+
"base-frequency": z.boolean()
|
|
11
12
|
}).default({
|
|
12
13
|
"visible-help-hints": true,
|
|
13
14
|
"enable-history-buttons": navigator.maxTouchPoints > 0,
|
|
14
15
|
"auto-open-clips": true,
|
|
15
|
-
"scrollbar-padding": Browser.isWindows()
|
|
16
|
+
"scrollbar-padding": Browser.isWindows(),
|
|
17
|
+
"base-frequency": false
|
|
16
18
|
}),
|
|
17
19
|
"time-display": z.object({
|
|
18
20
|
"musical": z.boolean(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaptureDevices.d.ts","sourceRoot":"","sources":["../../src/capture/CaptureDevices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,MAAM,EAA2B,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAElH,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAA;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAMjC,qBAAa,cAAe,YAAW,UAAU;;gBAMjC,OAAO,EAAE,OAAO;IA6B5B,IAAI,OAAO,IAAI,OAAO,CAAuB;IAE7C,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;IAEtC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"CaptureDevices.d.ts","sourceRoot":"","sources":["../../src/capture/CaptureDevices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,MAAM,EAA2B,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAElH,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAA;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAMjC,qBAAa,cAAe,YAAW,UAAU;;gBAMjC,OAAO,EAAE,OAAO;IA6B5B,IAAI,OAAO,IAAI,OAAO,CAAuB;IAE7C,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;IAEtC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAWlD,WAAW,IAAI,aAAa,CAAC,OAAO,CAAC;IAOrC,SAAS,IAAI,IAAI;CAKpB"}
|
|
@@ -38,6 +38,9 @@ export class CaptureDevices {
|
|
|
38
38
|
get project() { return this.#project; }
|
|
39
39
|
get(uuid) { return this.#captures.opt(uuid); }
|
|
40
40
|
setArm(subject, exclusive) {
|
|
41
|
+
if (this.#project.audioUnitFreeze.isFrozenUuid(subject.audioUnitBox.address.uuid)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
41
44
|
const arming = !subject.armed.getValue();
|
|
42
45
|
subject.armed.setValue(arming);
|
|
43
46
|
if (arming && exclusive) {
|
|
@@ -48,7 +51,9 @@ export class CaptureDevices {
|
|
|
48
51
|
}
|
|
49
52
|
filterArmed() {
|
|
50
53
|
return this.#captures.values()
|
|
51
|
-
.filter(capture => capture.armed.getValue()
|
|
54
|
+
.filter(capture => capture.armed.getValue()
|
|
55
|
+
&& capture.audioUnitBox.input.pointerHub.nonEmpty()
|
|
56
|
+
&& !this.#project.audioUnitFreeze.isFrozenUuid(capture.audioUnitBox.address.uuid));
|
|
52
57
|
}
|
|
53
58
|
terminate() {
|
|
54
59
|
this.#subscription.terminate();
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,mBAAmB,UAAU,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AAEvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,mBAAmB,UAAU,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AAEvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA"}
|
package/dist/index.js
CHANGED