@opendaw/studio-core 0.0.23 → 0.0.24

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 (102) hide show
  1. package/dist/AudioDevices.d.ts.map +1 -1
  2. package/dist/AudioDevices.js +1 -0
  3. package/dist/{Worklets.d.ts → AudioWorklets.d.ts} +6 -5
  4. package/dist/AudioWorklets.d.ts.map +1 -0
  5. package/dist/{Worklets.js → AudioWorklets.js} +3 -2
  6. package/dist/EffectFactory.d.ts +1 -1
  7. package/dist/EffectFactory.d.ts.map +1 -1
  8. package/dist/Engine.d.ts +6 -16
  9. package/dist/Engine.d.ts.map +1 -1
  10. package/dist/EngineFacade.d.ts +10 -9
  11. package/dist/EngineFacade.d.ts.map +1 -1
  12. package/dist/EngineFacade.js +28 -25
  13. package/dist/EngineWorklet.d.ts +7 -7
  14. package/dist/EngineWorklet.d.ts.map +1 -1
  15. package/dist/EngineWorklet.js +8 -16
  16. package/dist/PeaksWriter.d.ts +19 -0
  17. package/dist/PeaksWriter.d.ts.map +1 -0
  18. package/dist/PeaksWriter.js +43 -0
  19. package/dist/RecordingWorklet.d.ts +4 -2
  20. package/dist/RecordingWorklet.d.ts.map +1 -1
  21. package/dist/RecordingWorklet.js +36 -62
  22. package/dist/capture/Capture.d.ts +5 -6
  23. package/dist/capture/Capture.d.ts.map +1 -1
  24. package/dist/capture/CaptureAudio.d.ts +4 -5
  25. package/dist/capture/CaptureAudio.d.ts.map +1 -1
  26. package/dist/capture/CaptureAudio.js +26 -14
  27. package/dist/capture/{CaptureManager.d.ts → CaptureDevices.d.ts} +4 -3
  28. package/dist/capture/CaptureDevices.d.ts.map +1 -0
  29. package/dist/capture/{CaptureManager.js → CaptureDevices.js} +10 -1
  30. package/dist/capture/CaptureMidi.d.ts +8 -6
  31. package/dist/capture/CaptureMidi.d.ts.map +1 -1
  32. package/dist/capture/CaptureMidi.js +67 -47
  33. package/dist/capture/RecordAudio.d.ts +2 -2
  34. package/dist/capture/RecordAudio.d.ts.map +1 -1
  35. package/dist/capture/RecordAudio.js +50 -36
  36. package/dist/capture/RecordMidi.d.ts +3 -2
  37. package/dist/capture/RecordMidi.d.ts.map +1 -1
  38. package/dist/capture/RecordMidi.js +19 -22
  39. package/dist/capture/Recording.d.ts +2 -2
  40. package/dist/capture/Recording.d.ts.map +1 -1
  41. package/dist/capture/Recording.js +10 -11
  42. package/dist/dawproject/DawProject.d.ts +1 -1
  43. package/dist/dawproject/DawProject.d.ts.map +1 -1
  44. package/dist/dawproject/DawProject.js +3 -2
  45. package/dist/dawproject/DawProjectExporter.d.ts +1 -1
  46. package/dist/dawproject/DawProjectExporter.d.ts.map +1 -1
  47. package/dist/dawproject/DawProjectExporter.test.js +6 -5
  48. package/dist/index.d.ts +10 -6
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +10 -6
  51. package/dist/processors.js +3 -3
  52. package/dist/processors.js.map +4 -4
  53. package/dist/{Project.d.ts → project/Project.d.ts} +8 -7
  54. package/dist/project/Project.d.ts.map +1 -0
  55. package/dist/{Project.js → project/Project.js} +14 -6
  56. package/dist/{ProjectApi.d.ts → project/ProjectApi.d.ts} +5 -5
  57. package/dist/project/ProjectApi.d.ts.map +1 -0
  58. package/dist/{ProjectApi.js → project/ProjectApi.js} +2 -2
  59. package/dist/project/ProjectBundle.d.ts +8 -0
  60. package/dist/project/ProjectBundle.d.ts.map +1 -0
  61. package/dist/project/ProjectBundle.js +90 -0
  62. package/dist/project/ProjectEnv.d.ts +15 -0
  63. package/dist/project/ProjectEnv.d.ts.map +1 -0
  64. package/dist/project/ProjectMeta.d.ts +14 -0
  65. package/dist/project/ProjectMeta.d.ts.map +1 -0
  66. package/dist/project/ProjectMeta.js +12 -0
  67. package/dist/project/ProjectMigration.d.ts.map +1 -0
  68. package/dist/project/ProjectPaths.d.ts +12 -0
  69. package/dist/project/ProjectPaths.d.ts.map +1 -0
  70. package/dist/project/ProjectPaths.js +12 -0
  71. package/dist/project/ProjectProfile.d.ts +21 -0
  72. package/dist/project/ProjectProfile.d.ts.map +1 -0
  73. package/dist/project/ProjectProfile.js +83 -0
  74. package/dist/samples/MainThreadSampleLoader.d.ts +0 -2
  75. package/dist/samples/MainThreadSampleLoader.d.ts.map +1 -1
  76. package/dist/samples/MainThreadSampleLoader.js +1 -26
  77. package/dist/samples/MainThreadSampleManager.d.ts +1 -0
  78. package/dist/samples/MainThreadSampleManager.d.ts.map +1 -1
  79. package/dist/samples/MainThreadSampleManager.js +1 -0
  80. package/dist/sync-log/Commit.d.ts +1 -1
  81. package/dist/sync-log/Commit.d.ts.map +1 -1
  82. package/dist/sync-log/SyncLogReader.d.ts +2 -2
  83. package/dist/sync-log/SyncLogReader.d.ts.map +1 -1
  84. package/dist/sync-log/SyncLogReader.js +1 -1
  85. package/dist/sync-log/SyncLogWriter.d.ts +1 -1
  86. package/dist/sync-log/SyncLogWriter.d.ts.map +1 -1
  87. package/dist/workers.js +2 -2
  88. package/dist/workers.js.map +3 -3
  89. package/package.json +14 -14
  90. package/dist/Project.d.ts.map +0 -1
  91. package/dist/ProjectApi.d.ts.map +0 -1
  92. package/dist/ProjectEnv.d.ts +0 -5
  93. package/dist/ProjectEnv.d.ts.map +0 -1
  94. package/dist/ProjectMigration.d.ts.map +0 -1
  95. package/dist/Worklets.d.ts.map +0 -1
  96. package/dist/capture/CaptureManager.d.ts.map +0 -1
  97. package/dist/capture/RecordingContext.d.ts +0 -10
  98. package/dist/capture/RecordingContext.d.ts.map +0 -1
  99. package/dist/capture/RecordingContext.js +0 -1
  100. /package/dist/{ProjectEnv.js → project/ProjectEnv.js} +0 -0
  101. /package/dist/{ProjectMigration.d.ts → project/ProjectMigration.d.ts} +0 -0
  102. /package/dist/{ProjectMigration.js → project/ProjectMigration.js} +0 -0
@@ -1,8 +1,7 @@
1
- import { isUndefined, Option, quantizeCeil, quantizeFloor, Terminator, UUID } from "@opendaw/lib-std";
1
+ import { Option, quantizeCeil, quantizeFloor, Terminator, UUID } from "@opendaw/lib-std";
2
2
  import { PPQN } from "@opendaw/lib-dsp";
3
- import { MidiData } from "@opendaw/lib-midi";
4
3
  import { NoteEventBox, NoteEventCollectionBox, NoteRegionBox } from "@opendaw/studio-boxes";
5
- import { TrackType } from "@opendaw/studio-adapters";
4
+ import { NoteSignal, TrackType } from "@opendaw/studio-adapters";
6
5
  import { RecordTrack } from "./RecordTrack";
7
6
  import { ColorCodes } from "../ColorCodes";
8
7
  export var RecordMidi;
@@ -10,12 +9,13 @@ export var RecordMidi;
10
9
  RecordMidi.start = ({ notifier, project, capture }) => {
11
10
  console.debug("RecordMidi.start");
12
11
  const beats = PPQN.fromSignature(1, project.timelineBox.signature.denominator.getValue());
13
- const { editing, boxGraph } = project;
12
+ const { editing, boxGraph, engine } = project;
13
+ const { position, isRecording } = engine;
14
14
  const trackBox = RecordTrack.findOrCreate(editing, capture.audioUnitBox, TrackType.Notes);
15
15
  const terminator = new Terminator();
16
16
  const activeNotes = new Map();
17
17
  let writing = Option.None;
18
- terminator.own(project.engine.position.catchupAndSubscribe(owner => {
18
+ terminator.own(position.catchupAndSubscribe(owner => {
19
19
  if (writing.isEmpty()) {
20
20
  return;
21
21
  }
@@ -29,7 +29,7 @@ export var RecordMidi;
29
29
  loopDuration.setValue(newDuration);
30
30
  for (const event of activeNotes.values()) {
31
31
  if (event.isAttached()) {
32
- event.duration.setValue(writePosition - event.position.getValue());
32
+ event.duration.setValue(writePosition - region.position.getValue() - event.position.getValue());
33
33
  }
34
34
  else {
35
35
  activeNotes.delete(event.pitch.getValue());
@@ -37,47 +37,44 @@ export var RecordMidi;
37
37
  }
38
38
  }
39
39
  else {
40
+ terminator.terminate();
40
41
  writing = Option.None;
41
42
  }
42
43
  }, false);
43
44
  }));
44
- terminator.ownAll(notifier.subscribe((event) => {
45
- if (!project.engine.isRecording.getValue()) {
45
+ terminator.ownAll(notifier.subscribe((signal) => {
46
+ if (!isRecording.getValue()) {
46
47
  return;
47
48
  }
48
- const data = event.data;
49
- if (isUndefined(data)) {
50
- return;
51
- }
52
- const position = project.engine.position.getValue();
53
- if (MidiData.isNoteOn(data)) {
54
- const pitch = MidiData.readParam1(data);
49
+ const ppqn = position.getValue();
50
+ if (NoteSignal.isOn(signal)) {
51
+ const { pitch, velocity } = signal;
55
52
  if (writing.isEmpty()) {
56
53
  editing.modify(() => {
57
54
  const collection = NoteEventCollectionBox.create(boxGraph, UUID.generate());
58
55
  const region = NoteRegionBox.create(boxGraph, UUID.generate(), box => {
59
56
  box.regions.refer(trackBox.regions);
60
57
  box.events.refer(collection.owners);
61
- box.position.setValue(quantizeFloor(position, beats));
58
+ box.position.setValue(quantizeFloor(ppqn, beats));
62
59
  box.hue.setValue(ColorCodes.forTrackType(TrackType.Notes));
63
60
  });
61
+ engine.ignoreNoteRegion(region.address.uuid);
64
62
  writing = Option.wrap({ region, collection });
65
63
  }, false);
66
64
  }
67
- const { collection } = writing.unwrap();
65
+ const { region, collection } = writing.unwrap();
68
66
  editing.modify(() => {
69
67
  activeNotes.set(pitch, NoteEventBox.create(boxGraph, UUID.generate(), box => {
70
- box.position.setValue(position);
68
+ box.position.setValue(ppqn - region.position.getValue());
71
69
  box.duration.setValue(1.0);
72
70
  box.pitch.setValue(pitch);
73
- box.velocity.setValue(MidiData.readParam2(data) / 127.0);
71
+ box.velocity.setValue(velocity);
74
72
  box.events.refer(collection.events);
75
73
  }));
76
74
  }, false);
77
75
  }
78
- else if (MidiData.isNoteOff(data)) {
79
- const pitch = MidiData.readParam1(data);
80
- activeNotes.delete(pitch);
76
+ else if (NoteSignal.isOff(signal)) {
77
+ activeNotes.delete(signal.pitch);
81
78
  }
82
79
  }));
83
80
  return terminator;
@@ -1,9 +1,9 @@
1
1
  import { Terminable } from "@opendaw/lib-std";
2
- import { RecordingContext } from "./RecordingContext";
2
+ import { Project } from "../project/Project";
3
3
  export declare class Recording {
4
4
  #private;
5
5
  static get isRecording(): boolean;
6
- static start(context: RecordingContext, countIn: boolean): Promise<Terminable>;
6
+ static start(project: Project, countIn: boolean): Promise<Terminable>;
7
7
  private constructor();
8
8
  }
9
9
  //# sourceMappingURL=Recording.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Recording.d.ts","sourceRoot":"","sources":["../../src/capture/Recording.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,UAAU,EAAmB,MAAM,kBAAkB,CAAA;AAE3F,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAMnD,qBAAa,SAAS;;IAClB,MAAM,KAAK,WAAW,IAAI,OAAO,CAA2B;WAE/C,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IA+DpF,OAAO;CACV"}
1
+ {"version":3,"file":"Recording.d.ts","sourceRoot":"","sources":["../../src/capture/Recording.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,UAAU,EAAmB,MAAM,kBAAkB,CAAA;AAK3F,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAA;AAE1C,qBAAa,SAAS;;IAClB,MAAM,KAAK,WAAW,IAAI,OAAO,CAA2B;WAE/C,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IA8D3E,OAAO;CACV"}
@@ -5,27 +5,26 @@ import { AudioUnitType } from "@opendaw/studio-enums";
5
5
  import { InstrumentFactories } from "../InstrumentFactories";
6
6
  export class Recording {
7
7
  static get isRecording() { return this.#isRecording; }
8
- static async start(context, countIn) {
8
+ static async start(project, countIn) {
9
9
  if (this.#isRecording) {
10
10
  return Promise.resolve(Terminable.Empty);
11
11
  }
12
12
  this.#isRecording = true;
13
13
  assert(this.#instance.isEmpty(), "Recording already in progress");
14
- const { project } = context;
15
14
  this.#prepare(project);
16
- const { captureManager, engine, editing } = project;
15
+ const { captureDevices, engine, editing } = project;
17
16
  const terminator = new Terminator();
18
- const captures = captureManager.filterArmed();
17
+ const captures = captureDevices.filterArmed();
19
18
  if (captures.length === 0) {
20
19
  this.#isRecording = false;
21
20
  return warn("No track is armed for Recording");
22
21
  }
23
- const { status, error } = await Promises.tryCatch(Promise.all(captures.map(capture => capture.prepareRecording(context))));
22
+ const { status, error } = await Promises.tryCatch(Promise.all(captures.map(capture => capture.prepareRecording())));
24
23
  if (status === "rejected") {
25
24
  this.#isRecording = false;
26
- return warn(`Could not prepare recording: ${error}`);
25
+ return warn(String(error));
27
26
  }
28
- terminator.ownAll(...captures.map(capture => capture.startRecording(context)));
27
+ terminator.ownAll(...captures.map(capture => capture.startRecording()));
29
28
  engine.startRecording(countIn);
30
29
  const { isRecording, isCountingIn } = engine;
31
30
  const stop = () => {
@@ -40,8 +39,8 @@ export class Recording {
40
39
  this.#instance = Option.wrap(new Recording());
41
40
  return terminator;
42
41
  }
43
- static #prepare({ api, captureManager, editing, rootBox, userEditingManager }) {
44
- const captures = captureManager.filterArmed();
42
+ static #prepare({ api, captureDevices, editing, rootBox, userEditingManager }) {
43
+ const captures = captureDevices.filterArmed();
45
44
  const instruments = rootBox.audioUnits.pointerHub.incoming()
46
45
  .map(({ box }) => asInstanceOf(box, AudioUnitBox))
47
46
  .filter(box => box.type.getValue() === AudioUnitType.Instrument);
@@ -49,13 +48,13 @@ export class Recording {
49
48
  const { audioUnitBox } = editing
50
49
  .modify(() => api.createInstrument(InstrumentFactories.Tape))
51
50
  .unwrap("Could not create Tape");
52
- captureManager.get(audioUnitBox.address.uuid)
51
+ captureDevices.get(audioUnitBox.address.uuid)
53
52
  .unwrap("Could not unwrap capture")
54
53
  .armed.setValue(true);
55
54
  }
56
55
  else if (captures.length === 0) {
57
56
  userEditingManager.audioUnit.get()
58
- .ifSome(({ box: { address: { uuid } } }) => captureManager.get(uuid)
57
+ .ifSome(({ box: { address: { uuid } } }) => captureDevices.get(uuid)
59
58
  .ifSome(capture => capture.armed.setValue(true))); // auto arm editing audio-unit
60
59
  }
61
60
  }
@@ -1,6 +1,6 @@
1
1
  import { UUID } from "@opendaw/lib-std";
2
2
  import { MetaDataSchema, ProjectSchema } from "@opendaw/lib-dawproject";
3
- import { Project } from "../Project";
3
+ import { Project } from "../project/Project";
4
4
  export declare namespace DawProject {
5
5
  type Resource = {
6
6
  uuid: UUID.Format;
@@ -1 +1 @@
1
- {"version":3,"file":"DawProject.d.ts","sourceRoot":"","sources":["../../src/dawproject/DawProject.ts"],"names":[],"mappings":"AAEA,OAAO,EAA8B,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAsB,cAAc,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAA;AAGlC,yBAAiB,UAAU,CAAC;IACxB,KAAY,QAAQ,GAAG;QAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,CAAA;IAE7F,UAAiB,gBAAgB;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;QAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAA;KACxC;IAEM,MAAM,MAAM,GAAU,QAAQ,WAAW,GAAG,eAAe,KAAG,OAAO,CAAC;QACzE,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,SAAS,EAAE,gBAAgB,CAAA;KAC9B,CAwBA,CAAA;IAEM,MAAM,MAAM,GAAI,SAAS,OAAO,EAAE,UAAU,cAAc,KAAG,OAAO,CAAC,WAAW,CAgBtF,CAAA;CACJ"}
1
+ {"version":3,"file":"DawProject.d.ts","sourceRoot":"","sources":["../../src/dawproject/DawProject.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAsB,cAAc,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAA;AAG1C,yBAAiB,UAAU,CAAC;IACxB,KAAY,QAAQ,GAAG;QAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,CAAA;IAE7F,UAAiB,gBAAgB;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;QAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAA;KACxC;IAEM,MAAM,MAAM,GAAU,QAAQ,WAAW,GAAG,eAAe,KAAG,OAAO,CAAC;QACzE,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,SAAS,EAAE,gBAAgB,CAAA;KAC9B,CAyBA,CAAA;IAEM,MAAM,MAAM,GAAU,SAAS,OAAO,EAAE,UAAU,cAAc,KAAG,OAAO,CAAC,WAAW,CAiB5F,CAAA;CACJ"}
@@ -1,4 +1,3 @@
1
- import JSZip from "jszip";
2
1
  import { Xml } from "@opendaw/lib-xml";
3
2
  import { asDefined, isDefined, panic, UUID } from "@opendaw/lib-std";
4
3
  import { FileReferenceSchema, MetaDataSchema, ProjectSchema } from "@opendaw/lib-dawproject";
@@ -6,6 +5,7 @@ import { DawProjectExporter } from "./DawProjectExporter";
6
5
  export var DawProject;
7
6
  (function (DawProject) {
8
7
  DawProject.decode = async (buffer) => {
8
+ const { default: JSZip } = await import("jszip");
9
9
  const zip = await JSZip.loadAsync(buffer);
10
10
  const metaDataXml = await zip.file("metadata.xml")?.async("string");
11
11
  const metaData = isDefined(metaDataXml) ? Xml.parse(metaDataXml, MetaDataSchema) : Xml.element({}, MetaDataSchema);
@@ -28,7 +28,8 @@ export var DawProject;
28
28
  }
29
29
  };
30
30
  };
31
- DawProject.encode = (project, metaData) => {
31
+ DawProject.encode = async (project, metaData) => {
32
+ const { default: JSZip } = await import("jszip");
32
33
  const zip = new JSZip();
33
34
  const projectSchema = DawProjectExporter.write(project, {
34
35
  write: (path, buffer) => {
@@ -1,5 +1,5 @@
1
1
  import { FileReferenceSchema, ProjectSchema } from "@opendaw/lib-dawproject";
2
- import { Project } from "../Project";
2
+ import { Project } from "../project/Project";
3
3
  export declare namespace DawProjectExporter {
4
4
  interface ResourcePacker {
5
5
  write(path: string, buffer: ArrayBufferLike): FileReferenceSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"DawProjectExporter.d.ts","sourceRoot":"","sources":["../../src/dawproject/DawProjectExporter.ts"],"names":[],"mappings":"AAGA,OAAO,EAaH,mBAAmB,EAKnB,aAAa,EAUhB,MAAM,yBAAyB,CAAA;AAchC,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAA;AAQlC,yBAAiB,kBAAkB,CAAC;IAChC,UAAiB,cAAc;QAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAAA;KAAC;IAE5F,MAAM,KAAK,GAAI,SAAS,OAAO,EAAE,gBAAgB,cAAc,kBA4PrE,CAAA;CACJ"}
1
+ {"version":3,"file":"DawProjectExporter.d.ts","sourceRoot":"","sources":["../../src/dawproject/DawProjectExporter.ts"],"names":[],"mappings":"AAGA,OAAO,EAaH,mBAAmB,EAKnB,aAAa,EAUhB,MAAM,yBAAyB,CAAA;AAchC,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAA;AAQ1C,yBAAiB,kBAAkB,CAAC;IAChC,UAAiB,cAAc;QAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAAA;KAAC;IAE5F,MAAM,KAAK,GAAI,SAAS,OAAO,EAAE,gBAAgB,cAAc,kBA4PrE,CAAA;CACJ"}
@@ -2,8 +2,8 @@ import { describe, it } from "vitest";
2
2
  import { fileURLToPath } from "url";
3
3
  import * as path from "node:path";
4
4
  import * as fs from "node:fs";
5
- import { Project } from "../Project";
6
- import { Option, panic, Terminable } from "@opendaw/lib-std";
5
+ import { Project } from "../project/Project";
6
+ import { InaccessibleProperty, Option, panic, Terminable } from "@opendaw/lib-std";
7
7
  import { Xml } from "@opendaw/lib-xml";
8
8
  import { FileReferenceSchema } from "@opendaw/lib-dawproject";
9
9
  import { DawProjectExporter } from "./DawProjectExporter";
@@ -14,6 +14,8 @@ describe("DawProjectExport", () => {
14
14
  const buffer = fs.readFileSync(path.join(__dirname, projectPath));
15
15
  const arrayBuffer = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
16
16
  const project = Project.load({
17
+ audioContext: InaccessibleProperty,
18
+ audioWorklets: InaccessibleProperty,
17
19
  sampleManager: new class {
18
20
  record(_loader) {
19
21
  throw new Error("Method not implemented.");
@@ -31,9 +33,8 @@ describe("DawProjectExport", () => {
31
33
  }
32
34
  };
33
35
  }
34
- invalidate(_uuid) {
35
- return panic("Method not implemented.");
36
- }
36
+ remove(_uuid) { return panic("Method not implemented."); }
37
+ invalidate(_uuid) { return panic("Method not implemented."); }
37
38
  }
38
39
  }, arrayBuffer);
39
40
  const schema = DawProjectExporter.write(project, {
package/dist/index.d.ts CHANGED
@@ -8,13 +8,19 @@ export * from "./samples/SampleProvider";
8
8
  export * from "./capture/Capture";
9
9
  export * from "./capture/CaptureAudio";
10
10
  export * from "./capture/CaptureMidi";
11
- export * from "./capture/CaptureManager";
11
+ export * from "./capture/CaptureDevices";
12
12
  export * from "./capture/Recording";
13
- export * from "./capture/RecordingContext";
14
13
  export * from "./dawproject/DawProject";
15
14
  export * from "./dawproject/DawProjectExporter";
16
15
  export * from "./dawproject/DawProjectImport";
17
16
  export * from "./dawproject/DawProjectImport";
17
+ export * from "./project/Project";
18
+ export * from "./project/ProjectApi";
19
+ export * from "./project/ProjectBundle";
20
+ export * from "./project/ProjectEnv";
21
+ export * from "./project/ProjectMeta";
22
+ export * from "./project/ProjectPaths";
23
+ export * from "./project/ProjectProfile";
18
24
  export * from "./AudioDevices";
19
25
  export * from "./AudioUnitOrdering";
20
26
  export * from "./ColorCodes";
@@ -33,10 +39,8 @@ export * from "./InstrumentProduct";
33
39
  export * from "./MeterWorklet";
34
40
  export * from "./MidiDevices";
35
41
  export * from "./Mixer";
36
- export * from "./Project";
37
- export * from "./ProjectApi";
38
- export * from "./ProjectEnv";
42
+ export * from "./PeaksWriter";
39
43
  export * from "./Wav";
40
44
  export * from "./WorkerAgents";
41
- export * from "./Worklets";
45
+ export * from "./AudioWorklets";
42
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AACjD,cAAc,0BAA0B,CAAA;AAExC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAE1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAE7C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,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,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AACjD,cAAc,0BAA0B,CAAA;AAExC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAE7C,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AAExC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,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,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -8,13 +8,19 @@ export * from "./samples/SampleProvider";
8
8
  export * from "./capture/Capture";
9
9
  export * from "./capture/CaptureAudio";
10
10
  export * from "./capture/CaptureMidi";
11
- export * from "./capture/CaptureManager";
11
+ export * from "./capture/CaptureDevices";
12
12
  export * from "./capture/Recording";
13
- export * from "./capture/RecordingContext";
14
13
  export * from "./dawproject/DawProject";
15
14
  export * from "./dawproject/DawProjectExporter";
16
15
  export * from "./dawproject/DawProjectImport";
17
16
  export * from "./dawproject/DawProjectImport";
17
+ export * from "./project/Project";
18
+ export * from "./project/ProjectApi";
19
+ export * from "./project/ProjectBundle";
20
+ export * from "./project/ProjectEnv";
21
+ export * from "./project/ProjectMeta";
22
+ export * from "./project/ProjectPaths";
23
+ export * from "./project/ProjectProfile";
18
24
  export * from "./AudioDevices";
19
25
  export * from "./AudioUnitOrdering";
20
26
  export * from "./ColorCodes";
@@ -33,9 +39,7 @@ export * from "./InstrumentProduct";
33
39
  export * from "./MeterWorklet";
34
40
  export * from "./MidiDevices";
35
41
  export * from "./Mixer";
36
- export * from "./Project";
37
- export * from "./ProjectApi";
38
- export * from "./ProjectEnv";
42
+ export * from "./PeaksWriter";
39
43
  export * from "./Wav";
40
44
  export * from "./WorkerAgents";
41
- export * from "./Worklets";
45
+ export * from "./AudioWorklets";