@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.
Files changed (69) hide show
  1. package/dist/AssetService.d.ts.map +1 -1
  2. package/dist/AssetService.js +15 -4
  3. package/dist/AudioUnitFreeze.d.ts +15 -0
  4. package/dist/AudioUnitFreeze.d.ts.map +1 -0
  5. package/dist/AudioUnitFreeze.js +129 -0
  6. package/dist/Engine.d.ts +1 -0
  7. package/dist/Engine.d.ts.map +1 -1
  8. package/dist/EngineFacade.d.ts +1 -0
  9. package/dist/EngineFacade.d.ts.map +1 -1
  10. package/dist/EngineFacade.js +3 -0
  11. package/dist/EngineWorklet.d.ts +1 -0
  12. package/dist/EngineWorklet.d.ts.map +1 -1
  13. package/dist/EngineWorklet.js +4 -0
  14. package/dist/FilePickerAcceptTypes.d.ts +1 -0
  15. package/dist/FilePickerAcceptTypes.d.ts.map +1 -1
  16. package/dist/FilePickerAcceptTypes.js +4 -0
  17. package/dist/OfflineEngineRenderer.d.ts.map +1 -1
  18. package/dist/OfflineEngineRenderer.js +1 -0
  19. package/dist/StudioPreferences.d.ts +1 -0
  20. package/dist/StudioPreferences.d.ts.map +1 -1
  21. package/dist/StudioSettings.d.ts +1 -0
  22. package/dist/StudioSettings.d.ts.map +1 -1
  23. package/dist/StudioSettings.js +4 -2
  24. package/dist/capture/CaptureDevices.d.ts.map +1 -1
  25. package/dist/capture/CaptureDevices.js +6 -1
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -0
  29. package/dist/offline-engine.js.map +1 -1
  30. package/dist/processors.js +8 -8
  31. package/dist/processors.js.map +4 -4
  32. package/dist/project/Project.d.ts +2 -0
  33. package/dist/project/Project.d.ts.map +1 -1
  34. package/dist/project/Project.js +3 -0
  35. package/dist/project/ProjectApi.d.ts +3 -3
  36. package/dist/project/ProjectApi.d.ts.map +1 -1
  37. package/dist/project/ProjectApi.js +3 -0
  38. package/dist/project/audio/AudioContentHelpers.d.ts +2 -2
  39. package/dist/project/audio/AudioContentHelpers.d.ts.map +1 -1
  40. package/dist/project/audio/AudioContentHelpers.js +1 -1
  41. package/dist/project/audio/AudioContentModifier.d.ts.map +1 -1
  42. package/dist/project/audio/AudioContentModifier.js +8 -7
  43. package/dist/samples/SampleService.d.ts +1 -0
  44. package/dist/samples/SampleService.d.ts.map +1 -1
  45. package/dist/samples/SampleService.js +24 -19
  46. package/dist/ui/index.d.ts +1 -0
  47. package/dist/ui/index.d.ts.map +1 -1
  48. package/dist/ui/index.js +1 -0
  49. package/dist/ui/renderer/audio.d.ts +9 -0
  50. package/dist/ui/renderer/audio.d.ts.map +1 -0
  51. package/dist/ui/renderer/audio.js +277 -0
  52. package/dist/ui/renderer/env.d.ts +5 -0
  53. package/dist/ui/renderer/env.d.ts.map +1 -0
  54. package/dist/ui/renderer/env.js +1 -0
  55. package/dist/ui/renderer/fading.d.ts +7 -0
  56. package/dist/ui/renderer/fading.d.ts.map +1 -0
  57. package/dist/ui/renderer/fading.js +55 -0
  58. package/dist/ui/renderer/index.d.ts +6 -0
  59. package/dist/ui/renderer/index.d.ts.map +1 -0
  60. package/dist/ui/renderer/index.js +5 -0
  61. package/dist/ui/renderer/notes.d.ts +7 -0
  62. package/dist/ui/renderer/notes.d.ts.map +1 -0
  63. package/dist/ui/renderer/notes.js +23 -0
  64. package/dist/ui/renderer/value.d.ts +7 -0
  65. package/dist/ui/renderer/value.d.ts.map +1 -0
  66. package/dist/ui/renderer/value.js +101 -0
  67. package/dist/ui/timeline/RegionClipResolver.d.ts.map +1 -1
  68. package/dist/ui/timeline/RegionClipResolver.js +19 -23
  69. 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;cA+BjG,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAgChH,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAClE"}
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"}
@@ -42,8 +42,15 @@ export class AssetService {
42
42
  if (files.length === 0) {
43
43
  return;
44
44
  }
45
- const arrayBuffer = await files[0].arrayBuffer();
46
- const asset = await this.importFile({ uuid, arrayBuffer, progressHandler: Progress.Empty });
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 arrayBuffer = await file.arrayBuffer();
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: 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;
@@ -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"}
@@ -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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"}
@@ -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
  }
@@ -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":"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"}
1
+ {"version":3,"file":"EngineWorklet.d.ts","sourceRoot":"","sources":["../src/EngineWorklet.ts"],"names":[],"mappings":"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"}
@@ -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,EAAa,MAAM,EAAS,QAAQ,EAA6B,MAAM,kBAAkB,CAAA;AAC5G,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;WAoHpB,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"}
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();
@@ -4,6 +4,7 @@ export declare const StudioPreferences: import("@opendaw/lib-fusion").Preference
4
4
  "enable-history-buttons": boolean;
5
5
  "auto-open-clips": boolean;
6
6
  "scrollbar-padding": boolean;
7
+ "base-frequency": boolean;
7
8
  };
8
9
  "time-display": {
9
10
  musical: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"StudioPreferences.d.ts","sourceRoot":"","sources":["../src/StudioPreferences.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAwD,CAAA"}
1
+ {"version":3,"file":"StudioPreferences.d.ts","sourceRoot":"","sources":["../src/StudioPreferences.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAwD,CAAA"}
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+D/B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiE/B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
@@ -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;IAUlD,WAAW,IAAI,aAAa,CAAC,OAAO,CAAC;IAKrC,SAAS,IAAI,IAAI;CAKpB"}
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() && capture.audioUnitBox.input.pointerHub.nonEmpty());
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
@@ -30,4 +30,5 @@ export * from "./WavFile";
30
30
  export * from "./Workers";
31
31
  export * from "./AudioWorklets";
32
32
  export * from "./StudioSettings";
33
+ export * from "./AudioUnitFreeze";
33
34
  //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -29,3 +29,4 @@ export * from "./WavFile";
29
29
  export * from "./Workers";
30
30
  export * from "./AudioWorklets";
31
31
  export * from "./StudioSettings";
32
+ export * from "./AudioUnitFreeze";