@opendaw/studio-core 0.0.125 → 0.0.127

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 (82) hide show
  1. package/dist/AssetService.d.ts +3 -3
  2. package/dist/AssetService.d.ts.map +1 -1
  3. package/dist/AssetService.js +7 -7
  4. package/dist/AudioConsolidation.d.ts.map +1 -1
  5. package/dist/AudioConsolidation.js +2 -2
  6. package/dist/EffectBox.d.ts +2 -2
  7. package/dist/EffectBox.d.ts.map +1 -1
  8. package/dist/EffectFactories.d.ts +20 -14
  9. package/dist/EffectFactories.d.ts.map +1 -1
  10. package/dist/EffectFactories.js +88 -20
  11. package/dist/EffectFactory.d.ts +1 -0
  12. package/dist/EffectFactory.d.ts.map +1 -1
  13. package/dist/Engine.d.ts +2 -1
  14. package/dist/Engine.d.ts.map +1 -1
  15. package/dist/EngineFacade.d.ts +2 -1
  16. package/dist/EngineFacade.d.ts.map +1 -1
  17. package/dist/EngineFacade.js +3 -0
  18. package/dist/EngineWorklet.d.ts +2 -1
  19. package/dist/EngineWorklet.d.ts.map +1 -1
  20. package/dist/EngineWorklet.js +11 -1
  21. package/dist/Mixer.d.ts.map +1 -1
  22. package/dist/Mixer.js +3 -2
  23. package/dist/OfflineEngineRenderer.d.ts.map +1 -1
  24. package/dist/OfflineEngineRenderer.js +41 -3
  25. package/dist/capture/RecordAudio.d.ts.map +1 -1
  26. package/dist/capture/RecordAudio.js +48 -18
  27. package/dist/capture/RecordAutomation.d.ts.map +1 -1
  28. package/dist/capture/RecordAutomation.js +219 -198
  29. package/dist/capture/RecordMidi.d.ts.map +1 -1
  30. package/dist/capture/RecordMidi.js +1 -1
  31. package/dist/cloud/CloudBackupSamples.js +1 -1
  32. package/dist/dawproject/DawProjectExporter.js +1 -1
  33. package/dist/dawproject/DawProjectService.d.ts.map +1 -1
  34. package/dist/dawproject/DawProjectService.js +3 -16
  35. package/dist/index.d.ts +0 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +0 -1
  38. package/dist/midi/MidiDevices.d.ts.map +1 -1
  39. package/dist/midi/MidiDevices.js +8 -2
  40. package/dist/offline-engine.js +1 -1
  41. package/dist/offline-engine.js.map +3 -3
  42. package/dist/processors.js +37 -25
  43. package/dist/processors.js.map +4 -4
  44. package/dist/project/Project.d.ts.map +1 -1
  45. package/dist/project/Project.js +27 -2
  46. package/dist/project/Recovery.js +1 -1
  47. package/dist/project/migration/MigrateAudioClipBox.d.ts.map +1 -1
  48. package/dist/project/migration/MigrateAudioClipBox.js +7 -0
  49. package/dist/project/migration/MigrateAudioRegionBox.d.ts.map +1 -1
  50. package/dist/project/migration/MigrateAudioRegionBox.js +7 -0
  51. package/dist/samples/OpenSampleAPI.d.ts.map +1 -1
  52. package/dist/samples/OpenSampleAPI.js +1 -1
  53. package/dist/samples/SampleService.d.ts +1 -1
  54. package/dist/samples/SampleService.d.ts.map +1 -1
  55. package/dist/samples/SampleService.js +2 -2
  56. package/dist/samples/SampleStorage.d.ts.map +1 -1
  57. package/dist/samples/SampleStorage.js +1 -1
  58. package/dist/soundfont/SoundfontService.d.ts +1 -1
  59. package/dist/soundfont/SoundfontService.d.ts.map +1 -1
  60. package/dist/soundfont/SoundfontService.js +1 -1
  61. package/dist/ui/clipboard/ClipboardManager.d.ts.map +1 -1
  62. package/dist/ui/clipboard/ClipboardManager.js +18 -4
  63. package/dist/ui/clipboard/types/AudioUnitsClipboardHandler.js +2 -2
  64. package/dist/ui/clipboard/types/DevicesClipboardHandler.d.ts.map +1 -1
  65. package/dist/ui/clipboard/types/DevicesClipboardHandler.js +61 -9
  66. package/dist/ui/clipboard/types/DevicesClipboardHandler.test.d.ts +2 -0
  67. package/dist/ui/clipboard/types/DevicesClipboardHandler.test.d.ts.map +1 -0
  68. package/dist/ui/clipboard/types/DevicesClipboardHandler.test.js +976 -0
  69. package/dist/ui/timeline/RegionClipResolver.d.ts.map +1 -1
  70. package/dist/ui/timeline/RegionClipResolver.js +21 -29
  71. package/dist/ui/timeline/TimeGrid.d.ts +2 -0
  72. package/dist/ui/timeline/TimeGrid.d.ts.map +1 -1
  73. package/dist/ui/timeline/TimeGrid.js +13 -1
  74. package/dist/workers-main.js +1 -1
  75. package/dist/workers-main.js.map +3 -3
  76. package/dist/ysync/YService.d.ts +6 -1
  77. package/dist/ysync/YService.d.ts.map +1 -1
  78. package/dist/ysync/YService.js +2 -2
  79. package/package.json +15 -15
  80. package/dist/WavFile.d.ts +0 -7
  81. package/dist/WavFile.d.ts.map +0 -1
  82. package/dist/WavFile.js +0 -120
@@ -1,6 +1,11 @@
1
1
  import { Option } from "@opendaw/lib-std";
2
2
  import { Project, ProjectEnv } from "../project";
3
+ import { WebsocketProvider } from "y-websocket";
3
4
  export declare namespace YService {
4
- const getOrCreateRoom: (optProject: Option<Project>, env: ProjectEnv, roomName: string) => Promise<Project>;
5
+ type RoomResult = {
6
+ project: Project;
7
+ provider: WebsocketProvider;
8
+ };
9
+ const getOrCreateRoom: (optProject: Option<Project>, env: ProjectEnv, roomName: string) => Promise<RoomResult>;
5
10
  }
6
11
  //# sourceMappingURL=YService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"YService.d.ts","sourceRoot":"","sources":["../../src/ysync/YService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAyC,MAAM,kBAAkB,CAAA;AAKvF,OAAO,EAAC,OAAO,EAAE,UAAU,EAAmB,MAAM,YAAY,CAAA;AAOhE,yBAAiB,QAAQ,CAAC;IAMf,MAAM,eAAe,GAAU,YAAY,MAAM,CAAC,OAAO,CAAC,EAC3B,KAAK,UAAU,EACf,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CA+DvE,CAAA;CACJ"}
1
+ {"version":3,"file":"YService.d.ts","sourceRoot":"","sources":["../../src/ysync/YService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAyC,MAAM,kBAAkB,CAAA;AAKvF,OAAO,EAAC,OAAO,EAAE,UAAU,EAAmB,MAAM,YAAY,CAAA;AAGhE,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAA;AAI7C,yBAAiB,QAAQ,CAAC;IAMtB,KAAY,UAAU,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,iBAAiB,CAAA;KAAE,CAAA;IAEnE,MAAM,eAAe,GAAU,YAAY,MAAM,CAAC,OAAO,CAAC,EAC3B,KAAK,UAAU,EACf,UAAU,MAAM,KAAG,OAAO,CAAC,UAAU,CA+D1E,CAAA;CACJ"}
@@ -49,7 +49,7 @@ export var YService;
49
49
  // TODO Remove this cast at some point
50
50
  const editing = project.editing;
51
51
  editing.disable();
52
- return project;
52
+ return { project, provider };
53
53
  }
54
54
  else {
55
55
  if (optProject.nonEmpty()) {
@@ -77,7 +77,7 @@ export var YService;
77
77
  project.own(sync);
78
78
  const editing = project.editing;
79
79
  editing.disable();
80
- return project;
80
+ return { project, provider };
81
81
  }
82
82
  };
83
83
  })(YService || (YService = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-core",
3
- "version": "0.0.125",
3
+ "version": "0.0.127",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -33,17 +33,17 @@
33
33
  "test": "vitest run --config vitest.config.ts"
34
34
  },
35
35
  "dependencies": {
36
- "@opendaw/lib-box": "^0.0.78",
37
- "@opendaw/lib-dawproject": "^0.0.63",
38
- "@opendaw/lib-dom": "^0.0.77",
39
- "@opendaw/lib-dsp": "^0.0.77",
40
- "@opendaw/lib-fusion": "^0.0.85",
41
- "@opendaw/lib-runtime": "^0.0.73",
42
- "@opendaw/lib-std": "^0.0.72",
36
+ "@opendaw/lib-box": "^0.0.79",
37
+ "@opendaw/lib-dawproject": "^0.0.64",
38
+ "@opendaw/lib-dom": "^0.0.78",
39
+ "@opendaw/lib-dsp": "^0.0.78",
40
+ "@opendaw/lib-fusion": "^0.0.86",
41
+ "@opendaw/lib-runtime": "^0.0.74",
42
+ "@opendaw/lib-std": "^0.0.73",
43
43
  "@opendaw/nam-wasm": "^1.0.3",
44
- "@opendaw/studio-adapters": "^0.0.99",
45
- "@opendaw/studio-boxes": "^0.0.83",
46
- "@opendaw/studio-enums": "^0.0.68",
44
+ "@opendaw/studio-adapters": "^0.0.100",
45
+ "@opendaw/studio-boxes": "^0.0.84",
46
+ "@opendaw/studio-enums": "^0.0.69",
47
47
  "dropbox": "^10.34.0",
48
48
  "y-websocket": "^1.4.5",
49
49
  "yjs": "^13.6.27",
@@ -57,10 +57,10 @@
57
57
  "@ffmpeg/ffmpeg": "^0.12.15",
58
58
  "@ffmpeg/util": "^0.12.2",
59
59
  "@opendaw/eslint-config": "^0.0.27",
60
- "@opendaw/studio-core-processors": "^0.0.103",
61
- "@opendaw/studio-core-workers": "^0.0.94",
62
- "@opendaw/studio-forge-boxes": "^0.0.83",
60
+ "@opendaw/studio-core-processors": "^0.0.104",
61
+ "@opendaw/studio-core-workers": "^0.0.95",
62
+ "@opendaw/studio-forge-boxes": "^0.0.84",
63
63
  "@opendaw/typescript-config": "^0.0.29"
64
64
  },
65
- "gitHead": "6f73b01e0a666bb2a260e3b2a17dedcc072d1e69"
65
+ "gitHead": "0de255fcdacefee9ab663ceeb0d4424a278c5dc4"
66
66
  }
package/dist/WavFile.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import { int } from "@opendaw/lib-std";
2
- import { AudioData } from "@opendaw/lib-dsp";
3
- export declare namespace WavFile {
4
- const decodeFloats: (buffer: ArrayBuffer) => AudioData;
5
- const encodeFloats: (audio: AudioData | AudioBuffer, maxLength?: int) => ArrayBuffer;
6
- }
7
- //# sourceMappingURL=WavFile.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WavFile.d.ts","sourceRoot":"","sources":["../src/WavFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAQ,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAE1C,yBAAiB,OAAO,CAAC;IAMd,MAAM,YAAY,GAAI,QAAQ,WAAW,KAAG,SAgElD,CAAA;IAEM,MAAM,YAAY,GAAI,OAAO,SAAS,GAAG,WAAW,EAAE,YAAW,GAA6B,KAAG,WAwCvG,CAAA;CACJ"}
package/dist/WavFile.js DELETED
@@ -1,120 +0,0 @@
1
- import { Arrays, panic } from "@opendaw/lib-std";
2
- import { AudioData } from "@opendaw/lib-dsp";
3
- export var WavFile;
4
- (function (WavFile) {
5
- const MAGIC_RIFF = 0x46464952;
6
- const MAGIC_WAVE = 0x45564157;
7
- const MAGIC_FMT = 0x20746d66;
8
- const MAGIC_DATA = 0x61746164;
9
- WavFile.decodeFloats = (buffer) => {
10
- const view = new DataView(buffer);
11
- if (view.getUint32(0, true) !== MAGIC_RIFF
12
- || view.getUint32(8, true) !== MAGIC_WAVE) {
13
- return panic("Not a RIFF/WAVE file");
14
- }
15
- let fmtOffset = -1;
16
- let dataOffset = -1;
17
- let dataSize = 0;
18
- for (let o = 12; o + 8 <= view.byteLength;) {
19
- const id = view.getUint32(o, true);
20
- const size = view.getUint32(o + 4, true);
21
- const next = o + 8 + ((size + 1) & ~1);
22
- if (id === MAGIC_FMT)
23
- fmtOffset = o + 8;
24
- if (id === MAGIC_DATA) {
25
- dataOffset = o + 8;
26
- dataSize = size;
27
- }
28
- o = next;
29
- }
30
- if (fmtOffset < 0 || dataOffset < 0) {
31
- return panic("Missing fmt or data chunk");
32
- }
33
- const audioFormat = view.getUint16(fmtOffset, true); // 1 = PCM, 3 = IEEE float
34
- const numberOfChannels = view.getUint16(fmtOffset + 2, true);
35
- const sampleRate = view.getUint32(fmtOffset + 4, true);
36
- const blockAlign = view.getUint16(fmtOffset + 12, true);
37
- const bitsPerSample = view.getUint16(fmtOffset + 14, true);
38
- const bytesPerSample = bitsPerSample / 8;
39
- if (blockAlign !== numberOfChannels * bytesPerSample) {
40
- return panic("Invalid block alignment");
41
- }
42
- const numberOfFrames = Math.floor(dataSize / blockAlign);
43
- const audioData = AudioData.create(sampleRate, numberOfFrames, numberOfChannels);
44
- if (audioFormat === 3 && bitsPerSample === 32) {
45
- // 32-bit float
46
- const interleaved = new Float32Array(buffer, dataOffset, numberOfFrames * numberOfChannels);
47
- for (let i = 0, w = 0; i < numberOfFrames; i++) {
48
- for (let c = 0; c < numberOfChannels; c++) {
49
- audioData.frames[c][i] = interleaved[w++];
50
- }
51
- }
52
- }
53
- else if (audioFormat === 1 && bitsPerSample === 16) {
54
- // 16-bit PCM
55
- for (let i = 0, offset = dataOffset; i < numberOfFrames; i++) {
56
- for (let c = 0; c < numberOfChannels; c++) {
57
- audioData.frames[c][i] = view.getInt16(offset, true) / 32768;
58
- offset += 2;
59
- }
60
- }
61
- }
62
- else if (audioFormat === 1 && bitsPerSample === 24) {
63
- // 24-bit PCM
64
- for (let i = 0, offset = dataOffset; i < numberOfFrames; i++) {
65
- for (let c = 0; c < numberOfChannels; c++) {
66
- const low = view.getUint16(offset, true);
67
- const high = view.getInt8(offset + 2);
68
- audioData.frames[c][i] = (high * 65536 + low) / 8388608;
69
- offset += 3;
70
- }
71
- }
72
- }
73
- else {
74
- return panic(`Unsupported WAV format: ${audioFormat}, ${bitsPerSample}-bit`);
75
- }
76
- return audioData;
77
- };
78
- WavFile.encodeFloats = (audio, maxLength = Number.MAX_SAFE_INTEGER) => {
79
- const bytesPerChannel = Float32Array.BYTES_PER_ELEMENT;
80
- const sampleRate = audio.sampleRate;
81
- let numberOfFrames;
82
- let numberOfChannels;
83
- let frames;
84
- if (audio instanceof AudioBuffer) {
85
- frames = Arrays.create(index => audio.getChannelData(index), audio.numberOfChannels);
86
- numberOfFrames = audio.length;
87
- numberOfChannels = audio.numberOfChannels;
88
- }
89
- else {
90
- frames = audio.frames;
91
- numberOfFrames = audio.numberOfFrames;
92
- numberOfChannels = audio.frames.length;
93
- }
94
- numberOfFrames = Math.min(maxLength, numberOfFrames);
95
- const size = 44 + numberOfFrames * numberOfChannels * bytesPerChannel;
96
- const buf = new ArrayBuffer(size);
97
- const view = new DataView(buf);
98
- view.setUint32(0, MAGIC_RIFF, true);
99
- view.setUint32(4, size - 8, true);
100
- view.setUint32(8, MAGIC_WAVE, true);
101
- view.setUint32(12, MAGIC_FMT, true);
102
- view.setUint32(16, 16, true); // chunk length
103
- view.setUint16(20, 3, true); // compression
104
- view.setUint16(22, numberOfChannels, true);
105
- view.setUint32(24, sampleRate, true);
106
- view.setUint32(28, sampleRate * numberOfChannels * bytesPerChannel, true);
107
- view.setUint16(32, numberOfChannels * bytesPerChannel, true);
108
- view.setUint16(34, 8 * bytesPerChannel, true);
109
- view.setUint32(36, MAGIC_DATA, true);
110
- view.setUint32(40, numberOfChannels * numberOfFrames * bytesPerChannel, true);
111
- let w = 44;
112
- for (let i = 0; i < numberOfFrames; ++i) {
113
- for (let j = 0; j < numberOfChannels; ++j) {
114
- view.setFloat32(w, frames[j][i], true);
115
- w += bytesPerChannel;
116
- }
117
- }
118
- return view.buffer;
119
- };
120
- })(WavFile || (WavFile = {}));