@opendaw/studio-core 0.0.85 → 0.0.87

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 (83) hide show
  1. package/dist/AudioOfflineRenderer.d.ts.map +1 -1
  2. package/dist/AudioOfflineRenderer.js +1 -0
  3. package/dist/AudioWorklets.d.ts +3 -2
  4. package/dist/AudioWorklets.d.ts.map +1 -1
  5. package/dist/AudioWorklets.js +5 -2
  6. package/dist/EffectBox.d.ts +2 -2
  7. package/dist/EffectBox.d.ts.map +1 -1
  8. package/dist/EffectFactories.d.ts +3 -0
  9. package/dist/EffectFactories.d.ts.map +1 -1
  10. package/dist/EffectFactories.js +30 -3
  11. package/dist/EffectFactory.d.ts +2 -7
  12. package/dist/EffectFactory.d.ts.map +1 -1
  13. package/dist/Engine.d.ts +3 -5
  14. package/dist/Engine.d.ts.map +1 -1
  15. package/dist/EngineFacade.d.ts +3 -5
  16. package/dist/EngineFacade.d.ts.map +1 -1
  17. package/dist/EngineFacade.js +10 -9
  18. package/dist/EngineWorklet.d.ts +2 -4
  19. package/dist/EngineWorklet.d.ts.map +1 -1
  20. package/dist/EngineWorklet.js +6 -18
  21. package/dist/OfflineEngineRenderer.d.ts +10 -0
  22. package/dist/OfflineEngineRenderer.d.ts.map +1 -0
  23. package/dist/OfflineEngineRenderer.js +141 -0
  24. package/dist/RecordingWorklet.d.ts +1 -1
  25. package/dist/RecordingWorklet.d.ts.map +1 -1
  26. package/dist/RecordingWorklet.js +10 -17
  27. package/dist/StudioPreferences.d.ts +21 -0
  28. package/dist/StudioPreferences.d.ts.map +1 -0
  29. package/dist/StudioPreferences.js +3 -0
  30. package/dist/StudioSettings.d.ts +24 -0
  31. package/dist/StudioSettings.d.ts.map +1 -0
  32. package/dist/StudioSettings.js +22 -0
  33. package/dist/WavFile.js +4 -3
  34. package/dist/capture/CaptureAudio.d.ts.map +1 -1
  35. package/dist/capture/CaptureAudio.js +8 -7
  36. package/dist/capture/RecordAudio.d.ts +2 -1
  37. package/dist/capture/RecordAudio.d.ts.map +1 -1
  38. package/dist/capture/RecordAudio.js +78 -37
  39. package/dist/capture/RecordTrack.d.ts +1 -1
  40. package/dist/capture/RecordTrack.d.ts.map +1 -1
  41. package/dist/capture/RecordTrack.js +7 -5
  42. package/dist/dawproject/DawProjectExporter.test.js +1 -0
  43. package/dist/index.d.ts +3 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +3 -1
  46. package/dist/offline-engine.js +2 -0
  47. package/dist/offline-engine.js.map +7 -0
  48. package/dist/processors.js +35 -18
  49. package/dist/processors.js.map +4 -4
  50. package/dist/project/Project.d.ts.map +1 -1
  51. package/dist/project/Project.js +39 -18
  52. package/dist/project/ProjectMigration.d.ts.map +1 -1
  53. package/dist/project/ProjectMigration.js +41 -1
  54. package/dist/project/index.d.ts +1 -0
  55. package/dist/project/index.d.ts.map +1 -1
  56. package/dist/project/index.js +1 -0
  57. package/dist/samples/DefaultSampleLoader.d.ts +5 -3
  58. package/dist/samples/DefaultSampleLoader.d.ts.map +1 -1
  59. package/dist/samples/DefaultSampleLoader.js +21 -82
  60. package/dist/samples/{DefaultSampleLoaderManager.d.ts → GlobalSampleLoaderManager.d.ts} +4 -3
  61. package/dist/samples/GlobalSampleLoaderManager.d.ts.map +1 -0
  62. package/dist/samples/GlobalSampleLoaderManager.js +146 -0
  63. package/dist/samples/OpenSampleAPI.d.ts +1 -2
  64. package/dist/samples/OpenSampleAPI.d.ts.map +1 -1
  65. package/dist/samples/OpenSampleAPI.js +22 -26
  66. package/dist/samples/SampleAPI.d.ts +1 -1
  67. package/dist/samples/SampleAPI.d.ts.map +1 -1
  68. package/dist/samples/SampleService.d.ts.map +1 -1
  69. package/dist/samples/SampleService.js +5 -7
  70. package/dist/samples/SampleStorage.d.ts +0 -1
  71. package/dist/samples/SampleStorage.d.ts.map +1 -1
  72. package/dist/samples/SampleStorage.js +0 -1
  73. package/dist/samples/index.d.ts +1 -1
  74. package/dist/samples/index.d.ts.map +1 -1
  75. package/dist/samples/index.js +1 -1
  76. package/dist/workers-main.js +1 -1
  77. package/dist/workers-main.js.map +3 -3
  78. package/package.json +18 -16
  79. package/dist/Preferences.d.ts +0 -32
  80. package/dist/Preferences.d.ts.map +0 -1
  81. package/dist/Preferences.js +0 -52
  82. package/dist/samples/DefaultSampleLoaderManager.d.ts.map +0 -1
  83. package/dist/samples/DefaultSampleLoaderManager.js +0 -35
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-core",
3
- "version": "0.0.85",
3
+ "version": "0.0.87",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -17,12 +17,14 @@
17
17
  "default": "./dist/ffmpeg/FFmpegWorker.js"
18
18
  },
19
19
  "./workers-main.js": "./dist/workers-main.js",
20
- "./processors.js": "./dist/processors.js"
20
+ "./processors.js": "./dist/processors.js",
21
+ "./offline-engine.js": "./dist/offline-engine.js"
21
22
  },
22
23
  "files": [
23
24
  "dist/**",
24
25
  "dist/workers-main.js",
25
26
  "dist/processors.js",
27
+ "dist/offline-engine.js",
26
28
  "dist/ffmpeg/FFmpegWorker.js"
27
29
  ],
28
30
  "scripts": {
@@ -31,16 +33,16 @@
31
33
  "test": "vitest run --config vitest.config.ts"
32
34
  },
33
35
  "dependencies": {
34
- "@opendaw/lib-box": "^0.0.63",
35
- "@opendaw/lib-dawproject": "^0.0.48",
36
- "@opendaw/lib-dom": "^0.0.63",
37
- "@opendaw/lib-dsp": "^0.0.62",
38
- "@opendaw/lib-fusion": "^0.0.66",
39
- "@opendaw/lib-runtime": "^0.0.62",
40
- "@opendaw/lib-std": "^0.0.62",
41
- "@opendaw/studio-adapters": "^0.0.71",
42
- "@opendaw/studio-boxes": "^0.0.64",
43
- "@opendaw/studio-enums": "^0.0.54",
36
+ "@opendaw/lib-box": "^0.0.65",
37
+ "@opendaw/lib-dawproject": "^0.0.50",
38
+ "@opendaw/lib-dom": "^0.0.65",
39
+ "@opendaw/lib-dsp": "^0.0.64",
40
+ "@opendaw/lib-fusion": "^0.0.68",
41
+ "@opendaw/lib-runtime": "^0.0.64",
42
+ "@opendaw/lib-std": "^0.0.64",
43
+ "@opendaw/studio-adapters": "^0.0.73",
44
+ "@opendaw/studio-boxes": "^0.0.66",
45
+ "@opendaw/studio-enums": "^0.0.56",
44
46
  "dropbox": "^10.34.0",
45
47
  "y-websocket": "^1.4.5",
46
48
  "yjs": "^13.6.27",
@@ -54,10 +56,10 @@
54
56
  "@ffmpeg/ffmpeg": "^0.12.15",
55
57
  "@ffmpeg/util": "^0.12.2",
56
58
  "@opendaw/eslint-config": "^0.0.27",
57
- "@opendaw/studio-core-processors": "^0.0.73",
58
- "@opendaw/studio-core-workers": "^0.0.66",
59
- "@opendaw/studio-forge-boxes": "^0.0.64",
59
+ "@opendaw/studio-core-processors": "^0.0.75",
60
+ "@opendaw/studio-core-workers": "^0.0.68",
61
+ "@opendaw/studio-forge-boxes": "^0.0.66",
60
62
  "@opendaw/typescript-config": "^0.0.28"
61
63
  },
62
- "gitHead": "100e759378d7150e6eb7165232d8c4a1fbb77bbc"
64
+ "gitHead": "043469788d823f2ae6ca0f5c9f1483c06edf8659"
63
65
  }
@@ -1,32 +0,0 @@
1
- import { z } from "zod";
2
- import { Observer, Subscription } from "@opendaw/lib-std";
3
- declare const PreferencesSchema: z.ZodObject<{
4
- "visible-help-hints": z.ZodDefault<z.ZodBoolean>;
5
- "note-audition-while-editing": z.ZodDefault<z.ZodBoolean>;
6
- "modifying-controls-wheel": z.ZodDefault<z.ZodBoolean>;
7
- "auto-open-clips": z.ZodDefault<z.ZodBoolean>;
8
- "auto-create-output-compressor": z.ZodDefault<z.ZodBoolean>;
9
- "footer-show-fps-meter": z.ZodDefault<z.ZodBoolean>;
10
- "footer-show-build-infos": z.ZodDefault<z.ZodBoolean>;
11
- "normalize-mouse-wheel": z.ZodDefault<z.ZodBoolean>;
12
- "dragging-use-pointer-lock": z.ZodDefault<z.ZodBoolean>;
13
- "enable-beta-features": z.ZodDefault<z.ZodBoolean>;
14
- }, z.core.$strip>;
15
- export type Preferences = z.infer<typeof PreferencesSchema>;
16
- export declare const Preferences: {
17
- values: {
18
- "visible-help-hints": boolean;
19
- "note-audition-while-editing": boolean;
20
- "modifying-controls-wheel": boolean;
21
- "auto-open-clips": boolean;
22
- "auto-create-output-compressor": boolean;
23
- "footer-show-fps-meter": boolean;
24
- "footer-show-build-infos": boolean;
25
- "normalize-mouse-wheel": boolean;
26
- "dragging-use-pointer-lock": boolean;
27
- "enable-beta-features": boolean;
28
- };
29
- catchupAndSubscribe: <KEY extends keyof Preferences>(observer: Observer<Preferences[KEY]>, property: KEY) => Subscription;
30
- };
31
- export {};
32
- //# sourceMappingURL=Preferences.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Preferences.d.ts","sourceRoot":"","sources":["../src/Preferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AACrB,OAAO,EAAsB,QAAQ,EAAE,YAAY,EAAW,MAAM,kBAAkB,CAAA;AAEtF,QAAA,MAAM,iBAAiB;;;;;;;;;;;iBAWrB,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,WAAW;;;;;;;;;;;;;0BAkCM,GAAG,SAAS,MAAM,WAAW,YACrC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,KAAG,YAAY;CAK1E,CAAA"}
@@ -1,52 +0,0 @@
1
- import { z } from "zod";
2
- import { isDefined, Notifier, tryCatch } from "@opendaw/lib-std";
3
- const PreferencesSchema = z.object({
4
- "visible-help-hints": z.boolean().default(true),
5
- "note-audition-while-editing": z.boolean().default(true),
6
- "modifying-controls-wheel": z.boolean().default(false),
7
- "auto-open-clips": z.boolean().default(true),
8
- "auto-create-output-compressor": z.boolean().default(true),
9
- "footer-show-fps-meter": z.boolean().default(false),
10
- "footer-show-build-infos": z.boolean().default(false),
11
- "normalize-mouse-wheel": z.boolean().default(false),
12
- "dragging-use-pointer-lock": z.boolean().default(false),
13
- "enable-beta-features": z.boolean().default(false)
14
- });
15
- export const Preferences = (() => {
16
- const STORAGE_KEY = "preferences";
17
- const notifier = new Notifier();
18
- const watch = (target) => new Proxy(target, {
19
- set(obj, prop, value) {
20
- const key = prop;
21
- console.debug(`preference changed. key: ${key}, value: ${value}`);
22
- obj[key] = value;
23
- notifier.notify(key);
24
- tryCatch(() => localStorage.setItem(STORAGE_KEY, JSON.stringify(target)));
25
- return true;
26
- },
27
- preventExtensions() {
28
- // Prevent the proxy target from being made non-extensible
29
- return false;
30
- }
31
- });
32
- const getOrCreate = () => {
33
- const stored = localStorage.getItem(STORAGE_KEY);
34
- if (isDefined(stored)) {
35
- const { status, value } = tryCatch(() => JSON.parse(stored));
36
- if (status === "success") {
37
- return watch({ ...PreferencesSchema.parse(value) });
38
- }
39
- }
40
- return watch({ ...PreferencesSchema.parse({}) });
41
- };
42
- const preferences = getOrCreate();
43
- return {
44
- values: preferences,
45
- catchupAndSubscribe: (observer, property) => {
46
- observer(preferences[property]);
47
- return notifier.subscribe(key => { if (key === property) {
48
- observer(preferences[property]);
49
- } });
50
- }
51
- };
52
- })();
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultSampleLoaderManager.d.ts","sourceRoot":"","sources":["../../src/samples/DefaultSampleLoaderManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAA2B,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAExE,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAC,MAAM,0BAA0B,CAAA;AAC1F,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAE1C,qBAAa,0BAA2B,YAAW,mBAAmB,EAAE,cAAc;;gBAItE,QAAQ,EAAE,cAAc;IAKpC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAIzF,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK;IACvB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK;IAE3B,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAElC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,YAAY;IAIrC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;CAe3D"}
@@ -1,35 +0,0 @@
1
- import { UUID } from "@opendaw/lib-std";
2
- import { DefaultSampleLoader } from "./DefaultSampleLoader";
3
- export class DefaultSampleLoaderManager {
4
- #provider;
5
- #loaders;
6
- constructor(provider) {
7
- this.#provider = provider;
8
- this.#loaders = UUID.newSet(loader => loader.uuid);
9
- }
10
- fetch(uuid, progress) {
11
- return this.#provider.fetch(uuid, progress);
12
- }
13
- remove(uuid) { this.#loaders.removeByKey(uuid); }
14
- invalidate(uuid) { this.#loaders.opt(uuid).ifSome(loader => loader.invalidate()); }
15
- record(loader) { this.#loaders.add(loader); }
16
- getOrCreate(uuid) {
17
- return this.#loaders.getOrCreate(uuid, uuid => new DefaultSampleLoader(this, uuid));
18
- }
19
- async getAudioData(uuid) {
20
- const { promise, resolve, reject } = Promise.withResolvers();
21
- const loader = this.getOrCreate(uuid);
22
- let subscription;
23
- subscription = loader.subscribe(state => {
24
- if (state.type === "error") {
25
- queueMicrotask(() => subscription.terminate());
26
- reject(new Error(state.reason));
27
- }
28
- else if (loader.data.nonEmpty()) {
29
- queueMicrotask(() => subscription.terminate());
30
- resolve(loader.data.unwrap());
31
- }
32
- });
33
- return promise;
34
- }
35
- }