@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.
- package/dist/AssetService.d.ts +3 -3
- package/dist/AssetService.d.ts.map +1 -1
- package/dist/AssetService.js +7 -7
- package/dist/AudioConsolidation.d.ts.map +1 -1
- package/dist/AudioConsolidation.js +2 -2
- package/dist/EffectBox.d.ts +2 -2
- package/dist/EffectBox.d.ts.map +1 -1
- package/dist/EffectFactories.d.ts +20 -14
- package/dist/EffectFactories.d.ts.map +1 -1
- package/dist/EffectFactories.js +88 -20
- package/dist/EffectFactory.d.ts +1 -0
- package/dist/EffectFactory.d.ts.map +1 -1
- package/dist/Engine.d.ts +2 -1
- package/dist/Engine.d.ts.map +1 -1
- package/dist/EngineFacade.d.ts +2 -1
- package/dist/EngineFacade.d.ts.map +1 -1
- package/dist/EngineFacade.js +3 -0
- package/dist/EngineWorklet.d.ts +2 -1
- package/dist/EngineWorklet.d.ts.map +1 -1
- package/dist/EngineWorklet.js +11 -1
- package/dist/Mixer.d.ts.map +1 -1
- package/dist/Mixer.js +3 -2
- package/dist/OfflineEngineRenderer.d.ts.map +1 -1
- package/dist/OfflineEngineRenderer.js +41 -3
- package/dist/capture/RecordAudio.d.ts.map +1 -1
- package/dist/capture/RecordAudio.js +48 -18
- package/dist/capture/RecordAutomation.d.ts.map +1 -1
- package/dist/capture/RecordAutomation.js +219 -198
- package/dist/capture/RecordMidi.d.ts.map +1 -1
- package/dist/capture/RecordMidi.js +1 -1
- package/dist/cloud/CloudBackupSamples.js +1 -1
- package/dist/dawproject/DawProjectExporter.js +1 -1
- package/dist/dawproject/DawProjectService.d.ts.map +1 -1
- package/dist/dawproject/DawProjectService.js +3 -16
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/midi/MidiDevices.d.ts.map +1 -1
- package/dist/midi/MidiDevices.js +8 -2
- package/dist/offline-engine.js +1 -1
- package/dist/offline-engine.js.map +3 -3
- package/dist/processors.js +37 -25
- package/dist/processors.js.map +4 -4
- package/dist/project/Project.d.ts.map +1 -1
- package/dist/project/Project.js +27 -2
- package/dist/project/Recovery.js +1 -1
- package/dist/project/migration/MigrateAudioClipBox.d.ts.map +1 -1
- package/dist/project/migration/MigrateAudioClipBox.js +7 -0
- package/dist/project/migration/MigrateAudioRegionBox.d.ts.map +1 -1
- package/dist/project/migration/MigrateAudioRegionBox.js +7 -0
- package/dist/samples/OpenSampleAPI.d.ts.map +1 -1
- package/dist/samples/OpenSampleAPI.js +1 -1
- package/dist/samples/SampleService.d.ts +1 -1
- package/dist/samples/SampleService.d.ts.map +1 -1
- package/dist/samples/SampleService.js +2 -2
- package/dist/samples/SampleStorage.d.ts.map +1 -1
- package/dist/samples/SampleStorage.js +1 -1
- package/dist/soundfont/SoundfontService.d.ts +1 -1
- package/dist/soundfont/SoundfontService.d.ts.map +1 -1
- package/dist/soundfont/SoundfontService.js +1 -1
- package/dist/ui/clipboard/ClipboardManager.d.ts.map +1 -1
- package/dist/ui/clipboard/ClipboardManager.js +18 -4
- package/dist/ui/clipboard/types/AudioUnitsClipboardHandler.js +2 -2
- package/dist/ui/clipboard/types/DevicesClipboardHandler.d.ts.map +1 -1
- package/dist/ui/clipboard/types/DevicesClipboardHandler.js +61 -9
- package/dist/ui/clipboard/types/DevicesClipboardHandler.test.d.ts +2 -0
- package/dist/ui/clipboard/types/DevicesClipboardHandler.test.d.ts.map +1 -0
- package/dist/ui/clipboard/types/DevicesClipboardHandler.test.js +976 -0
- package/dist/ui/timeline/RegionClipResolver.d.ts.map +1 -1
- package/dist/ui/timeline/RegionClipResolver.js +21 -29
- package/dist/ui/timeline/TimeGrid.d.ts +2 -0
- package/dist/ui/timeline/TimeGrid.d.ts.map +1 -1
- package/dist/ui/timeline/TimeGrid.js +13 -1
- package/dist/workers-main.js +1 -1
- package/dist/workers-main.js.map +3 -3
- package/dist/ysync/YService.d.ts +6 -1
- package/dist/ysync/YService.d.ts.map +1 -1
- package/dist/ysync/YService.js +2 -2
- package/package.json +15 -15
- package/dist/WavFile.d.ts +0 -7
- package/dist/WavFile.d.ts.map +0 -1
- package/dist/WavFile.js +0 -120
package/dist/ysync/YService.d.ts
CHANGED
|
@@ -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
|
-
|
|
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;
|
|
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"}
|
package/dist/ysync/YService.js
CHANGED
|
@@ -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.
|
|
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.
|
|
37
|
-
"@opendaw/lib-dawproject": "^0.0.
|
|
38
|
-
"@opendaw/lib-dom": "^0.0.
|
|
39
|
-
"@opendaw/lib-dsp": "^0.0.
|
|
40
|
-
"@opendaw/lib-fusion": "^0.0.
|
|
41
|
-
"@opendaw/lib-runtime": "^0.0.
|
|
42
|
-
"@opendaw/lib-std": "^0.0.
|
|
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.
|
|
45
|
-
"@opendaw/studio-boxes": "^0.0.
|
|
46
|
-
"@opendaw/studio-enums": "^0.0.
|
|
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.
|
|
61
|
-
"@opendaw/studio-core-workers": "^0.0.
|
|
62
|
-
"@opendaw/studio-forge-boxes": "^0.0.
|
|
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": "
|
|
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
|
package/dist/WavFile.d.ts.map
DELETED
|
@@ -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 = {}));
|