@opendaw/studio-core 0.0.18 → 0.0.20

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 (111) hide show
  1. package/dist/AudioInputDevices.d.ts +8 -0
  2. package/dist/AudioInputDevices.d.ts.map +1 -0
  3. package/dist/AudioInputDevices.js +30 -0
  4. package/dist/AudioUnitOrdering.d.ts +3 -0
  5. package/dist/AudioUnitOrdering.d.ts.map +1 -0
  6. package/dist/AudioUnitOrdering.js +7 -0
  7. package/dist/EffectBox.d.ts +2 -2
  8. package/dist/EffectBox.d.ts.map +1 -1
  9. package/dist/Engine.d.ts +31 -10
  10. package/dist/Engine.d.ts.map +1 -1
  11. package/dist/EngineFacade.d.ts +22 -11
  12. package/dist/EngineFacade.d.ts.map +1 -1
  13. package/dist/EngineFacade.js +39 -22
  14. package/dist/EngineWorklet.d.ts +22 -13
  15. package/dist/EngineWorklet.d.ts.map +1 -1
  16. package/dist/EngineWorklet.js +47 -56
  17. package/dist/MeterWorklet.d.ts.map +1 -1
  18. package/dist/MeterWorklet.js +2 -2
  19. package/dist/Project.d.ts +7 -3
  20. package/dist/Project.d.ts.map +1 -1
  21. package/dist/Project.js +22 -4
  22. package/dist/ProjectApi.d.ts +0 -1
  23. package/dist/ProjectApi.d.ts.map +1 -1
  24. package/dist/ProjectApi.js +16 -11
  25. package/dist/ProjectEnv.d.ts +1 -0
  26. package/dist/ProjectEnv.d.ts.map +1 -1
  27. package/dist/ProjectMigration.d.ts.map +1 -1
  28. package/dist/ProjectMigration.js +20 -3
  29. package/dist/RecordingWorklet.d.ts +15 -3
  30. package/dist/RecordingWorklet.d.ts.map +1 -1
  31. package/dist/RecordingWorklet.js +111 -16
  32. package/dist/WorkerAgents.d.ts +2 -2
  33. package/dist/WorkerAgents.d.ts.map +1 -1
  34. package/dist/Worklets.d.ts +1 -1
  35. package/dist/Worklets.d.ts.map +1 -1
  36. package/dist/Worklets.js +2 -2
  37. package/dist/capture/Capture.d.ts +22 -0
  38. package/dist/capture/Capture.d.ts.map +1 -0
  39. package/dist/capture/Capture.js +32 -0
  40. package/dist/capture/CaptureAudio.d.ts +17 -0
  41. package/dist/capture/CaptureAudio.d.ts.map +1 -0
  42. package/dist/capture/CaptureAudio.js +106 -0
  43. package/dist/capture/CaptureManager.d.ts +12 -0
  44. package/dist/capture/CaptureManager.d.ts.map +1 -0
  45. package/dist/capture/CaptureManager.js +38 -0
  46. package/dist/capture/CaptureMidi.d.ts +13 -0
  47. package/dist/capture/CaptureMidi.d.ts.map +1 -0
  48. package/dist/capture/CaptureMidi.js +50 -0
  49. package/dist/capture/RecordAudio.d.ts +21 -0
  50. package/dist/capture/RecordAudio.d.ts.map +1 -0
  51. package/dist/capture/RecordAudio.js +66 -0
  52. package/dist/capture/RecordMidi.d.ts +15 -0
  53. package/dist/capture/RecordMidi.d.ts.map +1 -0
  54. package/dist/capture/RecordMidi.js +85 -0
  55. package/dist/capture/RecordTrack.d.ts +7 -0
  56. package/dist/capture/RecordTrack.d.ts.map +1 -0
  57. package/dist/capture/RecordTrack.js +23 -0
  58. package/dist/capture/Recording.d.ts +9 -0
  59. package/dist/capture/Recording.d.ts.map +1 -0
  60. package/dist/capture/Recording.js +65 -0
  61. package/dist/capture/RecordingContext.d.ts +14 -0
  62. package/dist/capture/RecordingContext.d.ts.map +1 -0
  63. package/dist/capture/RecordingContext.js +1 -0
  64. package/dist/dawproject/AudioUnitExportLayout.d.ts +10 -0
  65. package/dist/dawproject/AudioUnitExportLayout.d.ts.map +1 -0
  66. package/dist/dawproject/AudioUnitExportLayout.js +64 -0
  67. package/dist/dawproject/BuiltinDevices.d.ts +9 -0
  68. package/dist/dawproject/BuiltinDevices.d.ts.map +1 -0
  69. package/dist/dawproject/BuiltinDevices.js +70 -0
  70. package/dist/dawproject/DawProject.d.ts +22 -0
  71. package/dist/dawproject/DawProject.d.ts.map +1 -0
  72. package/dist/dawproject/DawProject.js +49 -0
  73. package/dist/dawproject/DawProjectExporter.d.ts +9 -0
  74. package/dist/dawproject/DawProjectExporter.d.ts.map +1 -0
  75. package/dist/dawproject/DawProjectExporter.js +252 -0
  76. package/dist/dawproject/DawProjectExporter.test.d.ts +2 -0
  77. package/dist/dawproject/DawProjectExporter.test.d.ts.map +1 -0
  78. package/dist/dawproject/DawProjectExporter.test.js +49 -0
  79. package/dist/dawproject/DawProjectImport.d.ts +12 -0
  80. package/dist/dawproject/DawProjectImport.d.ts.map +1 -0
  81. package/dist/dawproject/DawProjectImport.js +389 -0
  82. package/dist/dawproject/DawProjectImport.test.d.ts +2 -0
  83. package/dist/dawproject/DawProjectImport.test.d.ts.map +1 -0
  84. package/dist/dawproject/DawProjectImport.test.js +15 -0
  85. package/dist/dawproject/DeviceIO.d.ts +8 -0
  86. package/dist/dawproject/DeviceIO.d.ts.map +1 -0
  87. package/dist/dawproject/DeviceIO.js +63 -0
  88. package/dist/index.d.ts +12 -2
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +12 -2
  91. package/dist/processors.js +3 -3
  92. package/dist/processors.js.map +4 -4
  93. package/dist/samples/MainThreadSampleLoader.d.ts +1 -0
  94. package/dist/samples/MainThreadSampleLoader.d.ts.map +1 -1
  95. package/dist/samples/MainThreadSampleLoader.js +10 -6
  96. package/dist/samples/MainThreadSampleManager.d.ts +5 -5
  97. package/dist/samples/MainThreadSampleManager.d.ts.map +1 -1
  98. package/dist/samples/MainThreadSampleManager.js +1 -0
  99. package/dist/samples/SampleProvider.d.ts +2 -2
  100. package/dist/samples/SampleProvider.d.ts.map +1 -1
  101. package/dist/samples/SampleStorage.d.ts.map +1 -1
  102. package/dist/samples/SampleStorage.js +2 -3
  103. package/dist/workers.js +2 -2
  104. package/dist/workers.js.map +4 -4
  105. package/package.json +17 -17
  106. package/dist/DawProjectIO.d.ts +0 -7
  107. package/dist/DawProjectIO.d.ts.map +0 -1
  108. package/dist/DawProjectIO.js +0 -73
  109. package/dist/samples/SamplePeaks.d.ts +0 -6
  110. package/dist/samples/SamplePeaks.d.ts.map +0 -1
  111. package/dist/samples/SamplePeaks.js +0 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-core",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,26 +23,26 @@
23
23
  "scripts": {
24
24
  "build": "tsc",
25
25
  "lint": "eslint \"**/*.ts\"",
26
- "test": "echo \"No tests to run\""
26
+ "test": "vitest run --config vitest.config.ts"
27
27
  },
28
28
  "dependencies": {
29
- "@opendaw/lib-box": "^0.0.18",
30
- "@opendaw/lib-dawproject": "^0.0.4",
31
- "@opendaw/lib-dom": "^0.0.18",
32
- "@opendaw/lib-dsp": "^0.0.18",
33
- "@opendaw/lib-fusion": "^0.0.18",
34
- "@opendaw/lib-runtime": "^0.0.18",
35
- "@opendaw/lib-std": "^0.0.18",
36
- "@opendaw/studio-adapters": "^0.0.18",
37
- "@opendaw/studio-boxes": "^0.0.18",
38
- "@opendaw/studio-enums": "^0.0.18"
29
+ "@opendaw/lib-box": "^0.0.20",
30
+ "@opendaw/lib-dawproject": "^0.0.6",
31
+ "@opendaw/lib-dom": "^0.0.20",
32
+ "@opendaw/lib-dsp": "^0.0.20",
33
+ "@opendaw/lib-fusion": "^0.0.20",
34
+ "@opendaw/lib-runtime": "^0.0.20",
35
+ "@opendaw/lib-std": "^0.0.20",
36
+ "@opendaw/studio-adapters": "^0.0.20",
37
+ "@opendaw/studio-boxes": "^0.0.20",
38
+ "@opendaw/studio-enums": "^0.0.20"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@opendaw/eslint-config": "^0.0.18",
42
- "@opendaw/studio-core-processors": "^0.0.18",
43
- "@opendaw/studio-core-workers": "^0.0.12",
44
- "@opendaw/studio-forge-boxes": "^0.0.18",
45
- "@opendaw/typescript-config": "^0.0.18"
42
+ "@opendaw/studio-core-processors": "^0.0.20",
43
+ "@opendaw/studio-core-workers": "^0.0.14",
44
+ "@opendaw/studio-forge-boxes": "^0.0.20",
45
+ "@opendaw/typescript-config": "^0.0.19"
46
46
  },
47
- "gitHead": "c5a09134e8559ca6d8b2f7f45f6b6a409466c51b"
47
+ "gitHead": "de891be4fc9e418776b3a6c433748e287abab912"
48
48
  }
@@ -1,7 +0,0 @@
1
- import { Project } from "./Project";
2
- import { ProjectEnv } from "./ProjectEnv";
3
- export declare namespace DawProjectIO {
4
- const decode: (env: ProjectEnv, arrayBuffer: ArrayBuffer) => Promise<Project>;
5
- const encode: ({ rootBox, timelineBox }: Project) => string;
6
- }
7
- //# sourceMappingURL=DawProjectIO.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DawProjectIO.d.ts","sourceRoot":"","sources":["../src/DawProjectIO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAejC,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAIvC,yBAAiB,YAAY,CAAC;IACnB,MAAM,MAAM,GAAU,KAAK,UAAU,EAAE,aAAa,WAAW,KAAG,OAAO,CAAC,OAAO,CAevF,CAAA;IAEM,MAAM,MAAM,GAAI,0BAAwB,OAAO,KAAG,MAqCxD,CAAA;CAYJ"}
@@ -1,73 +0,0 @@
1
- import { Project } from "./Project";
2
- import { IndexedBox } from "@opendaw/lib-box";
3
- import { AudioUnitBox, TrackBox } from "@opendaw/studio-boxes";
4
- import { Xml } from "@opendaw/lib-xml";
5
- import { ApplicationSchema, BooleanParameterSchema, ChannelSchema, ProjectSchema, RealParameterSchema, TimeSignatureParameterSchema, TrackSchema, TransportSchema, Unit } from "@opendaw/lib-dawproject";
6
- import { asDefined } from "@opendaw/lib-std";
7
- import JSZip from "jszip";
8
- export var DawProjectIO;
9
- (function (DawProjectIO) {
10
- DawProjectIO.decode = async (env, arrayBuffer) => {
11
- const zip = await JSZip.loadAsync(arrayBuffer);
12
- const { transport, arrangement } = Xml.parse(asDefined(await zip.file("project.xml")
13
- ?.async("string"), "No project.xml found"), ProjectSchema);
14
- const project = Project.new(env);
15
- const { timelineBox, boxGraph } = project;
16
- boxGraph.beginTransaction();
17
- {
18
- timelineBox.bpm.setValue(transport?.tempo?.value ?? 120.0);
19
- timelineBox.signature.nominator.setValue(transport?.timeSignature?.numerator ?? 4);
20
- timelineBox.signature.denominator.setValue(transport?.timeSignature?.denominator ?? 4);
21
- // TODO :-)
22
- }
23
- boxGraph.endTransaction();
24
- return project;
25
- };
26
- DawProjectIO.encode = ({ rootBox, timelineBox }) => {
27
- const trackBoxes = IndexedBox.collectIndexedBoxes(rootBox.audioUnits, AudioUnitBox)
28
- .flatMap(audioUnitBox => IndexedBox.collectIndexedBoxes(audioUnitBox.tracks, TrackBox));
29
- const rootNode = Xml.element({
30
- version: "1.0",
31
- application: Xml.element({
32
- name: "openDAW",
33
- version: "0.1"
34
- }, ApplicationSchema),
35
- transport: createTransport(timelineBox),
36
- structure: [
37
- Xml.element({
38
- id: "0",
39
- contentType: "notes",
40
- channel: Xml.element({
41
- audioChannels: 2,
42
- mute: Xml.element({ value: true }, BooleanParameterSchema)
43
- }, ChannelSchema),
44
- tracks: [
45
- Xml.element({
46
- id: "01",
47
- contentType: "audio"
48
- }, TrackSchema),
49
- Xml.element({
50
- id: "02",
51
- contentType: "audio"
52
- }, TrackSchema)
53
- ]
54
- }, TrackSchema),
55
- Xml.element({
56
- id: "1",
57
- contentType: "audio"
58
- }, TrackSchema)
59
- ]
60
- }, ProjectSchema);
61
- return Xml.pretty(Xml.toElement("Project", rootNode));
62
- };
63
- const createTransport = (timelineBox) => Xml.element({
64
- tempo: Xml.element({
65
- unit: Unit.BPM,
66
- value: timelineBox.bpm.getValue()
67
- }, RealParameterSchema),
68
- timeSignature: Xml.element({
69
- numerator: timelineBox.signature.nominator.getValue(),
70
- denominator: timelineBox.signature.denominator.getValue()
71
- }, TimeSignatureParameterSchema)
72
- }, TransportSchema);
73
- })(DawProjectIO || (DawProjectIO = {}));
@@ -1,6 +0,0 @@
1
- import { ProgressHandler } from "@opendaw/lib-std";
2
- import { AudioData } from "@opendaw/studio-adapters";
3
- export declare namespace SamplePeaks {
4
- const generate: (audio: AudioData, progress: ProgressHandler) => Promise<ArrayBuffer>;
5
- }
6
- //# sourceMappingURL=SamplePeaks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SamplePeaks.d.ts","sourceRoot":"","sources":["../../src/samples/SamplePeaks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAGlD,yBAAiB,WAAW,CAAC;IAClB,MAAM,QAAQ,GAAU,OAAO,SAAS,EAAE,UAAU,eAAe,KAAG,OAAO,CAAC,WAAW,CAQ/F,CAAA;CACJ"}
@@ -1,9 +0,0 @@
1
- import { Peaks } from "@opendaw/lib-fusion";
2
- import { WorkerAgents } from "../WorkerAgents";
3
- export var SamplePeaks;
4
- (function (SamplePeaks) {
5
- SamplePeaks.generate = async (audio, progress) => {
6
- const shifts = Peaks.findBestFit(audio.numberOfFrames);
7
- return await WorkerAgents.Peak.generateAsync(progress, shifts, audio.frames, audio.numberOfFrames, audio.numberOfChannels);
8
- };
9
- })(SamplePeaks || (SamplePeaks = {}));