@opendaw/studio-core 0.0.40 → 0.0.42
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/EngineWorklet.d.ts.map +1 -1
- package/dist/EngineWorklet.js +18 -1
- package/dist/FilePickerAcceptTypes.d.ts +1 -0
- package/dist/FilePickerAcceptTypes.d.ts.map +1 -1
- package/dist/FilePickerAcceptTypes.js +6 -0
- package/dist/InstrumentBox.d.ts +2 -2
- package/dist/InstrumentBox.d.ts.map +1 -1
- package/dist/InstrumentFactories.d.ts +13 -4
- package/dist/InstrumentFactories.d.ts.map +1 -1
- package/dist/InstrumentFactories.js +38 -18
- package/dist/InstrumentFactory.d.ts +3 -2
- package/dist/InstrumentFactory.d.ts.map +1 -1
- package/dist/InstrumentOptions.d.ts +2 -1
- package/dist/InstrumentOptions.d.ts.map +1 -1
- package/dist/OpenDAWHeaders.d.ts +3 -0
- package/dist/OpenDAWHeaders.d.ts.map +1 -0
- package/dist/OpenDAWHeaders.js +8 -0
- package/dist/RecordingWorklet.js +1 -1
- package/dist/Storage.d.ts +14 -0
- package/dist/Storage.d.ts.map +1 -0
- package/dist/Storage.js +32 -0
- package/dist/capture/index.d.ts +6 -0
- package/dist/capture/index.d.ts.map +1 -0
- package/dist/capture/index.js +5 -0
- package/dist/cloud/CloudAuthManager.d.ts.map +1 -0
- package/dist/{clouds → cloud}/CloudBackup.d.ts +1 -1
- package/dist/cloud/CloudBackup.d.ts.map +1 -0
- package/dist/{clouds → cloud}/CloudBackup.js +6 -4
- package/dist/cloud/CloudBackupProjects.d.ts.map +1 -0
- package/dist/cloud/CloudBackupSamples.d.ts.map +1 -0
- package/dist/{clouds → cloud}/CloudBackupSamples.js +5 -6
- package/dist/cloud/CloudBackupSoundfont.d.ts +13 -0
- package/dist/cloud/CloudBackupSoundfont.d.ts.map +1 -0
- package/dist/cloud/CloudBackupSoundfont.js +120 -0
- package/dist/cloud/CloudHandler.d.ts.map +1 -0
- package/dist/cloud/CloudService.d.ts.map +1 -0
- package/dist/cloud/DropboxHandler.d.ts.map +1 -0
- package/dist/cloud/GoogleDriveHandler.d.ts.map +1 -0
- package/dist/cloud/index.d.ts +4 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +3 -0
- package/dist/dawproject/DawProjectExporter.test.js +2 -1
- package/dist/dawproject/DawProjectService.d.ts +11 -0
- package/dist/dawproject/DawProjectService.d.ts.map +1 -0
- package/dist/dawproject/DawProjectService.js +63 -0
- package/dist/dawproject/index.d.ts +5 -0
- package/dist/dawproject/index.d.ts.map +1 -0
- package/dist/dawproject/index.js +4 -0
- package/dist/index.d.ts +11 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -32
- package/dist/midi/index.d.ts +3 -0
- package/dist/midi/index.d.ts.map +1 -0
- package/dist/midi/index.js +2 -0
- package/dist/processors.js +3 -3
- package/dist/processors.js.map +4 -4
- package/dist/project/Project.d.ts +2 -1
- package/dist/project/Project.d.ts.map +1 -1
- package/dist/project/Project.js +1 -0
- package/dist/project/ProjectApi.d.ts +1 -1
- package/dist/project/ProjectApi.d.ts.map +1 -1
- package/dist/project/ProjectApi.js +3 -2
- package/dist/project/ProjectBundle.d.ts.map +1 -1
- package/dist/project/ProjectBundle.js +67 -18
- package/dist/project/ProjectEnv.d.ts +2 -1
- package/dist/project/ProjectEnv.d.ts.map +1 -1
- package/dist/project/ProjectStorage.d.ts +3 -2
- package/dist/project/ProjectStorage.d.ts.map +1 -1
- package/dist/project/ProjectStorage.js +2 -3
- package/dist/project/index.d.ts +10 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +9 -0
- package/dist/samples/DefaultSampleLoader.js +2 -2
- package/dist/samples/OpenSampleAPI.d.ts.map +1 -1
- package/dist/samples/OpenSampleAPI.js +4 -11
- package/dist/samples/SampleService.d.ts +18 -0
- package/dist/samples/SampleService.d.ts.map +1 -0
- package/dist/samples/SampleService.js +82 -0
- package/dist/samples/SampleStorage.d.ts +11 -10
- package/dist/samples/SampleStorage.d.ts.map +1 -1
- package/dist/samples/SampleStorage.js +32 -39
- package/dist/samples/index.d.ts +1 -2
- package/dist/samples/index.d.ts.map +1 -1
- package/dist/samples/index.js +1 -2
- package/dist/soundfont/DefaultSoundfontLoader.d.ts +15 -0
- package/dist/soundfont/DefaultSoundfontLoader.d.ts.map +1 -0
- package/dist/soundfont/DefaultSoundfontLoader.js +69 -0
- package/dist/soundfont/DefaultSoundfontLoaderManager.d.ts +11 -0
- package/dist/soundfont/DefaultSoundfontLoaderManager.d.ts.map +1 -0
- package/dist/soundfont/DefaultSoundfontLoaderManager.js +17 -0
- package/dist/soundfont/OpenSoundfontAPI.d.ts +13 -0
- package/dist/soundfont/OpenSoundfontAPI.d.ts.map +1 -0
- package/dist/soundfont/OpenSoundfontAPI.js +63 -0
- package/dist/soundfont/SoundfontProvider.d.ts +6 -0
- package/dist/soundfont/SoundfontProvider.d.ts.map +1 -0
- package/dist/soundfont/SoundfontService.d.ts +20 -0
- package/dist/soundfont/SoundfontService.d.ts.map +1 -0
- package/dist/soundfont/SoundfontService.js +98 -0
- package/dist/soundfont/SoundfontStorage.d.ts +21 -0
- package/dist/soundfont/SoundfontStorage.d.ts.map +1 -0
- package/dist/soundfont/SoundfontStorage.js +40 -0
- package/dist/soundfont/index.d.ts +7 -0
- package/dist/soundfont/index.d.ts.map +1 -0
- package/dist/soundfont/index.js +6 -0
- package/dist/sync-log/index.d.ts +4 -0
- package/dist/sync-log/index.d.ts.map +1 -0
- package/dist/sync-log/index.js +3 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/workers-main.js +2 -2
- package/dist/workers-main.js.map +3 -3
- package/dist/ysync/YMapper.d.ts.map +1 -0
- package/dist/{yjs → ysync}/YService.d.ts +1 -2
- package/dist/ysync/YService.d.ts.map +1 -0
- package/dist/{yjs → ysync}/YService.js +1 -1
- package/dist/ysync/YSync.d.ts.map +1 -0
- package/dist/{yjs → ysync}/YSync.js +1 -1
- package/dist/ysync/index.d.ts +4 -0
- package/dist/ysync/index.d.ts.map +1 -0
- package/dist/ysync/index.js +3 -0
- package/package.json +16 -18
- package/dist/clouds/CloudAuthManager.d.ts.map +0 -1
- package/dist/clouds/CloudBackup.d.ts.map +0 -1
- package/dist/clouds/CloudBackupProjects.d.ts.map +0 -1
- package/dist/clouds/CloudBackupSamples.d.ts.map +0 -1
- package/dist/clouds/CloudHandler.d.ts.map +0 -1
- package/dist/clouds/CloudService.d.ts.map +0 -1
- package/dist/clouds/DropboxHandler.d.ts.map +0 -1
- package/dist/clouds/GoogleDriveHandler.d.ts.map +0 -1
- package/dist/samples/P2PSampleProvider.d.ts +0 -13
- package/dist/samples/P2PSampleProvider.d.ts.map +0 -1
- package/dist/samples/P2PSampleProvider.js +0 -350
- package/dist/samples/SampleImporter.d.ts +0 -11
- package/dist/samples/SampleImporter.d.ts.map +0 -1
- package/dist/yjs/YMapper.d.ts.map +0 -1
- package/dist/yjs/YService.d.ts.map +0 -1
- package/dist/yjs/YSync.d.ts.map +0 -1
- /package/dist/{clouds → cloud}/CloudAuthManager.d.ts +0 -0
- /package/dist/{clouds → cloud}/CloudAuthManager.js +0 -0
- /package/dist/{clouds → cloud}/CloudBackupProjects.d.ts +0 -0
- /package/dist/{clouds → cloud}/CloudBackupProjects.js +0 -0
- /package/dist/{clouds → cloud}/CloudBackupSamples.d.ts +0 -0
- /package/dist/{clouds → cloud}/CloudHandler.d.ts +0 -0
- /package/dist/{clouds → cloud}/CloudHandler.js +0 -0
- /package/dist/{clouds → cloud}/CloudService.d.ts +0 -0
- /package/dist/{clouds → cloud}/CloudService.js +0 -0
- /package/dist/{clouds → cloud}/DropboxHandler.d.ts +0 -0
- /package/dist/{clouds → cloud}/DropboxHandler.js +0 -0
- /package/dist/{clouds → cloud}/GoogleDriveHandler.d.ts +0 -0
- /package/dist/{clouds → cloud}/GoogleDriveHandler.js +0 -0
- /package/dist/{samples/SampleImporter.js → soundfont/SoundfontProvider.js} +0 -0
- /package/dist/{yjs → ysync}/YMapper.d.ts +0 -0
- /package/dist/{yjs → ysync}/YMapper.js +0 -0
- /package/dist/{yjs → ysync}/YSync.d.ts +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"YMapper.d.ts","sourceRoot":"","sources":["../../src/ysync/YMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAEP,GAAG,EAON,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,yBAAiB,OAAO,CAAC;IACd,MAAM,YAAY,GAAI,KAAK,GAAG,KAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAKpD,CAAA;IAEM,MAAM,eAAe,GAAI,KAAK,GAAG,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAG,IAgBlE,CAAA;IAEM,MAAM,aAAa,GAAI,yCAAyC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,SAAS,MAAM,KAAG,OAMxH,CAAA;IAEM,MAAM,OAAO,GAAI,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CACS,CAAA;CAYlH"}
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import { Option } from "@opendaw/lib-std";
|
2
|
-
import { ProjectEnv } from "../project
|
3
|
-
import { Project } from "../project/Project";
|
2
|
+
import { Project, ProjectEnv } from "../project";
|
4
3
|
export declare namespace YService {
|
5
4
|
const getOrCreateRoom: (optProject: Option<Project>, env: ProjectEnv, roomName: string) => Promise<Project>;
|
6
5
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"YService.d.ts","sourceRoot":"","sources":["../../src/ysync/YService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAmC,MAAM,kBAAkB,CAAA;AAQjF,OAAO,EAAC,OAAO,EAAE,UAAU,EAAC,MAAM,YAAY,CAAA;AAI9C,yBAAiB,QAAQ,CAAC;IAKf,MAAM,eAAe,GAAU,YAAY,MAAM,CAAC,OAAO,CAAC,EAC3B,KAAK,UAAU,EACf,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAiDvE,CAAA;CACJ"}
|
@@ -6,7 +6,7 @@ import { ProjectDecoder } from "@opendaw/studio-adapters";
|
|
6
6
|
import { YSync } from "./YSync";
|
7
7
|
import * as Y from "yjs";
|
8
8
|
import { WebsocketProvider } from "y-websocket";
|
9
|
-
import { Project } from "../project
|
9
|
+
import { Project } from "../project";
|
10
10
|
// https://inspector.yjs.dev/
|
11
11
|
export var YService;
|
12
12
|
(function (YService) {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"YSync.d.ts","sourceRoot":"","sources":["../../src/ysync/YSync.ts"],"names":[],"mappings":"AAAA,OAAO,EASH,QAAQ,EAER,UAAU,EAGb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAa,QAAQ,EAA2D,MAAM,kBAAkB,CAAA;AAE/G,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAIxB,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACvB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,GAAG,CAAA;IACV,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CAC/B,CAAA;AAED,qBAAa,KAAK,CAAC,CAAC,CAAE,YAAW,UAAU;;IACvC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,OAAO;WAItB,QAAQ,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,GAAG,EAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;WAa7D,IAAI,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,GAAG,EAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBA4B1D,EAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IASnD,SAAS,IAAI,IAAI;CAkJpB"}
|
@@ -154,7 +154,7 @@ export class YSync {
|
|
154
154
|
}
|
155
155
|
this.#doc.transact(() => this.#updates.forEach(update => {
|
156
156
|
/**
|
157
|
-
* TRANSFER CHANGES FROM OPENDAW TO
|
157
|
+
* TRANSFER CHANGES FROM OPENDAW TO YJS
|
158
158
|
*/
|
159
159
|
if (update.type === "new") {
|
160
160
|
const uuid = update.uuid;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ysync/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@opendaw/studio-core",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.42",
|
4
4
|
"license": "LGPL-3.0-or-later",
|
5
5
|
"publishConfig": {
|
6
6
|
"access": "public"
|
@@ -26,28 +26,26 @@
|
|
26
26
|
"test": "vitest run --config vitest.config.ts"
|
27
27
|
},
|
28
28
|
"dependencies": {
|
29
|
-
"@
|
30
|
-
"@
|
31
|
-
"@opendaw/lib-
|
32
|
-
"@opendaw/lib-
|
33
|
-
"@opendaw/lib-
|
34
|
-
"@opendaw/lib-
|
35
|
-
"@opendaw/lib-
|
36
|
-
"@opendaw/
|
37
|
-
"@opendaw/
|
38
|
-
"@opendaw/studio-
|
39
|
-
"@opendaw/studio-boxes": "^0.0.31",
|
40
|
-
"@opendaw/studio-enums": "^0.0.22",
|
29
|
+
"@opendaw/lib-box": "^0.0.33",
|
30
|
+
"@opendaw/lib-dawproject": "^0.0.19",
|
31
|
+
"@opendaw/lib-dom": "^0.0.33",
|
32
|
+
"@opendaw/lib-dsp": "^0.0.33",
|
33
|
+
"@opendaw/lib-fusion": "^0.0.33",
|
34
|
+
"@opendaw/lib-runtime": "^0.0.33",
|
35
|
+
"@opendaw/lib-std": "^0.0.33",
|
36
|
+
"@opendaw/studio-adapters": "^0.0.34",
|
37
|
+
"@opendaw/studio-boxes": "^0.0.33",
|
38
|
+
"@opendaw/studio-enums": "^0.0.24",
|
41
39
|
"dropbox": "^10.34.0",
|
42
|
-
"y-
|
40
|
+
"y-websocket": "^1.4.5",
|
43
41
|
"yjs": "^13.6.27"
|
44
42
|
},
|
45
43
|
"devDependencies": {
|
46
44
|
"@opendaw/eslint-config": "^0.0.19",
|
47
|
-
"@opendaw/studio-core-processors": "^0.0.
|
48
|
-
"@opendaw/studio-core-workers": "^0.0.
|
49
|
-
"@opendaw/studio-forge-boxes": "^0.0.
|
45
|
+
"@opendaw/studio-core-processors": "^0.0.34",
|
46
|
+
"@opendaw/studio-core-workers": "^0.0.29",
|
47
|
+
"@opendaw/studio-forge-boxes": "^0.0.33",
|
50
48
|
"@opendaw/typescript-config": "^0.0.20"
|
51
49
|
},
|
52
|
-
"gitHead": "
|
50
|
+
"gitHead": "cae71a4fa8c78a8a37c48a120f25fc1b3767100a"
|
53
51
|
}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"CloudAuthManager.d.ts","sourceRoot":"","sources":["../../src/clouds/CloudAuthManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAI3C,qBAAa,gBAAgB;;IACzB,MAAM,CAAC,MAAM,IAAI,gBAAgB;IAqBjC,QAAQ,CAAC,EAAE,SAAyB;IAIpC,OAAO;IAED,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CAuLjE"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"CloudBackup.d.ts","sourceRoot":"","sources":["../../src/clouds/CloudBackup.ts"],"names":[],"mappings":"AAUA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAG3C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAK3C,yBAAiB,WAAW,CAAC;IAClB,MAAM,MAAM,GAAU,kBAAkB,gBAAgB,EAAE,SAAS,YAAY,kBA+BrF,CAAA;IAEM,MAAM,iBAAiB,GAAU,cAAc,YAAY,EAAE,SAAS,YAAY,uBA+CxF,CAAA;CACJ"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"CloudBackupProjects.d.ts","sourceRoot":"","sources":["../../src/clouds/CloudBackupProjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAOH,SAAS,EACT,QAAQ,EAKX,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAY3C,qBAAa,mBAAmB;;IAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAa;IACvC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAkC;WAEtD,KAAK,CAAC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAC1B,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC;IAmBzC,OAAO;CAyJV"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"CloudBackupSamples.d.ts","sourceRoot":"","sources":["../../src/clouds/CloudBackupSamples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,SAAS,EAAE,QAAQ,EAAmB,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAGlG,OAAO,EAAY,MAAM,EAAC,MAAM,0BAA0B,CAAA;AAG1D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAM3C,qBAAa,kBAAkB;;IAC3B,MAAM,CAAC,QAAQ,CAAC,UAAU,aAAY;IACtC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAkC;IACnE,MAAM,CAAC,QAAQ,CAAC,eAAe,GAAI,aAAW,MAAM,EAAE,aAAW,MAAM,aAAY;IAEnF,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;WAE5B,KAAK,CAAC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAC1B,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC;IAgBzC,OAAO;CA2HV"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"CloudHandler.d.ts","sourceRoot":"","sources":["../../src/clouds/CloudHandler.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IACzB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC5C,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"CloudService.d.ts","sourceRoot":"","sources":["../../src/clouds/CloudService.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,aAAa,CAAA"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"DropboxHandler.d.ts","sourceRoot":"","sources":["../../src/clouds/DropboxHandler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAE3C,qBAAa,cAAe,YAAW,YAAY;;gBAKnC,WAAW,EAAE,MAAM;IAEzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAe5C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWtC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAO3C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAgC5C"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"GoogleDriveHandler.d.ts","sourceRoot":"","sources":["../../src/clouds/GoogleDriveHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAmB3C,qBAAa,kBAAmB,YAAW,YAAY;;gBAKvC,WAAW,EAAE,MAAM;IAEzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BtD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAe5C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4BtC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAmK5C"}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { Progress, UUID } from "@opendaw/lib-std";
|
2
|
-
import { AudioData, SampleMetaData } from "@opendaw/studio-adapters";
|
3
|
-
import * as Y from "yjs";
|
4
|
-
import { WebrtcProvider } from "y-webrtc";
|
5
|
-
import { SampleProvider } from "./SampleProvider";
|
6
|
-
export declare class P2PSampleProvider implements SampleProvider {
|
7
|
-
#private;
|
8
|
-
static create(doc: Y.Doc, provider: WebrtcProvider): P2PSampleProvider;
|
9
|
-
constructor(doc: Y.Doc, provider: WebrtcProvider);
|
10
|
-
fetch(uuid: UUID.Bytes, progress: Progress.Handler): Promise<[AudioData, SampleMetaData]>;
|
11
|
-
share(uuidAsString: string, audioData: AudioData, peaks: ArrayBuffer, metadata: SampleMetaData): Promise<void>;
|
12
|
-
}
|
13
|
-
//# sourceMappingURL=P2PSampleProvider.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"P2PSampleProvider.d.ts","sourceRoot":"","sources":["../../src/samples/P2PSampleProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,QAAQ,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAC5F,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,0BAA0B,CAAA;AAClE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAC,cAAc,EAAC,MAAM,UAAU,CAAA;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAkC/C,qBAAa,iBAAkB,YAAW,cAAc;;IACpD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,GAAG,iBAAiB;gBAc1D,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc;IAY1C,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAmDzF,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAkSvH"}
|
@@ -1,350 +0,0 @@
|
|
1
|
-
import { asDefined, isDefined, isNotUndefined, panic, UUID } from "@opendaw/lib-std";
|
2
|
-
import { SampleStorage } from "./SampleStorage";
|
3
|
-
export class P2PSampleProvider {
|
4
|
-
static create(doc, provider) {
|
5
|
-
return new P2PSampleProvider(doc, provider);
|
6
|
-
}
|
7
|
-
#doc;
|
8
|
-
#provider;
|
9
|
-
#samplesMap;
|
10
|
-
#CHUNK_SIZE = 16384;
|
11
|
-
#CHANNEL_LABEL = "openDAW-samples";
|
12
|
-
#peerChannels = new Map();
|
13
|
-
#activeTransfers = new Map();
|
14
|
-
#pendingFetches = new Map();
|
15
|
-
constructor(doc, provider) {
|
16
|
-
this.#doc = doc;
|
17
|
-
this.#provider = provider;
|
18
|
-
this.#samplesMap = doc.getMap("samples");
|
19
|
-
console.log(`[P2P] Initializing with provider:`, provider);
|
20
|
-
console.log(`[P2P] Provider maxConns:`, provider.maxConns);
|
21
|
-
console.log(`[P2P] Provider filterBcConns:`, provider.filterBcConns);
|
22
|
-
console.log(`[P2P] Provider room:`, provider.room);
|
23
|
-
console.log(`[P2P] Provider webrtcConns size:`, provider.webrtcConns?.size);
|
24
|
-
this.#init();
|
25
|
-
}
|
26
|
-
async fetch(uuid, progress) {
|
27
|
-
const uuidAsString = UUID.toString(uuid);
|
28
|
-
console.log(`[P2P] Fetching sample: ${uuidAsString}`);
|
29
|
-
try {
|
30
|
-
const [audio, _, meta] = await SampleStorage.loadSample(UUID.parse(uuidAsString));
|
31
|
-
console.log(`[P2P] Sample found in storage: ${uuidAsString}`);
|
32
|
-
progress(1.0);
|
33
|
-
return [audio, meta];
|
34
|
-
}
|
35
|
-
catch (error) {
|
36
|
-
console.log(`[P2P] Sample not in storage, requesting from peers: ${uuidAsString}`);
|
37
|
-
}
|
38
|
-
const existingPromise = this.#pendingFetches.get(uuidAsString);
|
39
|
-
if (isNotUndefined(existingPromise)) {
|
40
|
-
console.log(`[P2P] Sample already being fetched: ${uuidAsString}`);
|
41
|
-
return existingPromise;
|
42
|
-
}
|
43
|
-
this.#requestSampleFromPeers(uuidAsString);
|
44
|
-
const promise = new Promise((resolve, reject) => {
|
45
|
-
const timeout = setTimeout(() => {
|
46
|
-
console.warn(`[P2P] Sample fetch timeout: ${uuidAsString}`);
|
47
|
-
this.#pendingFetches.delete(uuidAsString);
|
48
|
-
this.#activeTransfers.delete(uuidAsString);
|
49
|
-
reject(new Error(`No sample source available for ${uuid}`));
|
50
|
-
}, 30000);
|
51
|
-
this.#activeTransfers.set(uuidAsString, {
|
52
|
-
chunks: [],
|
53
|
-
expectedSize: 0,
|
54
|
-
receivedSize: 0,
|
55
|
-
metadata: {},
|
56
|
-
resolve,
|
57
|
-
reject,
|
58
|
-
progress,
|
59
|
-
timeout
|
60
|
-
});
|
61
|
-
});
|
62
|
-
this.#pendingFetches.set(uuidAsString, promise);
|
63
|
-
return promise;
|
64
|
-
}
|
65
|
-
#requestSampleFromPeers(uuid) {
|
66
|
-
console.log(`[P2P] Requesting sample from ${this.#peerChannels.size} peers: ${uuid}`);
|
67
|
-
this.#peerChannels.forEach(channel => {
|
68
|
-
if (channel.readyState === "open") {
|
69
|
-
channel.send(JSON.stringify({
|
70
|
-
type: "request",
|
71
|
-
uuid: uuid
|
72
|
-
}));
|
73
|
-
}
|
74
|
-
});
|
75
|
-
}
|
76
|
-
async share(uuidAsString, audioData, peaks, metadata) {
|
77
|
-
console.log(`[P2P] Sharing sample: ${uuidAsString}`);
|
78
|
-
await SampleStorage.saveSample({
|
79
|
-
uuid: UUID.parse(uuidAsString),
|
80
|
-
audio: audioData,
|
81
|
-
peaks: peaks,
|
82
|
-
meta: metadata
|
83
|
-
});
|
84
|
-
this.#samplesMap.set(uuidAsString, {
|
85
|
-
uuid: uuidAsString,
|
86
|
-
ownerId: this.#getMyId(),
|
87
|
-
metadata,
|
88
|
-
timestamp: Date.now()
|
89
|
-
});
|
90
|
-
const zipData = await this.#createZipFile(audioData, peaks, metadata);
|
91
|
-
console.log(`[P2P] Broadcasting sample to ${this.#peerChannels.size} peers (${zipData.byteLength} bytes): ${uuidAsString}`);
|
92
|
-
this.#peerChannels.forEach((channel) => {
|
93
|
-
if (channel.readyState === "open") {
|
94
|
-
this.#sendSample(channel, uuidAsString, zipData, metadata);
|
95
|
-
}
|
96
|
-
});
|
97
|
-
}
|
98
|
-
async #createZipFile(audioData, peaks, metadata) {
|
99
|
-
const { default: JSZip } = await import("jszip");
|
100
|
-
const zip = new JSZip();
|
101
|
-
zip.file("version", "1");
|
102
|
-
zip.file("metadata.json", JSON.stringify(metadata));
|
103
|
-
zip.file("audio.bin", this.#audioDataToArrayBuffer(audioData), { binary: true });
|
104
|
-
zip.file("peaks.bin", peaks, { binary: true });
|
105
|
-
return await zip.generateAsync({ type: "arraybuffer" });
|
106
|
-
}
|
107
|
-
async #extractZipFile(zipBuffer) {
|
108
|
-
const { default: JSZip } = await import("jszip");
|
109
|
-
const zip = new JSZip();
|
110
|
-
await zip.loadAsync(zipBuffer);
|
111
|
-
const version = await zip.file("version")?.async("string");
|
112
|
-
if (version !== "1") {
|
113
|
-
return panic(`Unsupported zip version: ${version}`);
|
114
|
-
}
|
115
|
-
const metadataText = await zip.file("metadata.json")?.async("string");
|
116
|
-
if (!isDefined(metadataText)) {
|
117
|
-
return panic("Missing metadata.json in zip");
|
118
|
-
}
|
119
|
-
const metadata = JSON.parse(metadataText);
|
120
|
-
const audioBuffer = await zip.file("audio.bin")?.async("arraybuffer");
|
121
|
-
if (!isDefined(audioBuffer)) {
|
122
|
-
return panic("Missing audio.bin in zip");
|
123
|
-
}
|
124
|
-
const peaks = await zip.file("peaks.bin")?.async("arraybuffer");
|
125
|
-
if (!isDefined(peaks)) {
|
126
|
-
return panic("Missing peaks.bin in zip");
|
127
|
-
}
|
128
|
-
const audioData = this.#arrayBufferToAudioData(audioBuffer);
|
129
|
-
return { audioData, peaks, metadata };
|
130
|
-
}
|
131
|
-
#init() {
|
132
|
-
this.#setupPeers();
|
133
|
-
this.#setupSampleListener();
|
134
|
-
}
|
135
|
-
#setupPeers() {
|
136
|
-
console.log(`[P2P] Setting up peer management`);
|
137
|
-
this.#provider.on("peers", (event) => {
|
138
|
-
console.log(`[P2P] Peers event:`, event);
|
139
|
-
event.added.forEach(peerId => {
|
140
|
-
console.log(`[P2P] Peer connected: ${peerId}`);
|
141
|
-
if (event.webrtcPeers.includes(peerId)) {
|
142
|
-
console.log(`[P2P] Setting up WebRTC data channel for: ${peerId}`);
|
143
|
-
this.#createChannel(peerId);
|
144
|
-
this.#setupIncomingChannelHandler(peerId);
|
145
|
-
}
|
146
|
-
else if (event.bcPeers.includes(peerId)) {
|
147
|
-
console.log(`[P2P] Peer is using BroadcastChannel (same device): ${peerId}`);
|
148
|
-
console.log(`[P2P] Sample sharing not available for BroadcastChannel peers`);
|
149
|
-
}
|
150
|
-
});
|
151
|
-
event.removed.forEach(peerId => {
|
152
|
-
console.log(`[P2P] Peer disconnected: ${peerId}`);
|
153
|
-
this.#peerChannels.delete(peerId);
|
154
|
-
});
|
155
|
-
console.log(`[P2P] Total WebRTC peers: ${event.webrtcPeers.length}`);
|
156
|
-
console.log(`[P2P] Total BroadcastChannel peers: ${event.bcPeers.length}`);
|
157
|
-
console.log(`[P2P] Total active data channels: ${this.#peerChannels.size}`);
|
158
|
-
});
|
159
|
-
}
|
160
|
-
#setupIncomingChannelHandler(peerId) {
|
161
|
-
const conn = this.#provider.webrtcConns?.get(peerId);
|
162
|
-
if (!conn?.peer)
|
163
|
-
return;
|
164
|
-
conn.peer.ondatachannel = (event) => {
|
165
|
-
if (event.channel.label === this.#CHANNEL_LABEL) {
|
166
|
-
console.log(`[P2P] Incoming data channel from: ${peerId}`);
|
167
|
-
this.#setupChannel(event.channel, peerId);
|
168
|
-
}
|
169
|
-
};
|
170
|
-
}
|
171
|
-
#createChannel(peerId) {
|
172
|
-
console.log(`[P2P] Creating data channel for peer: ${peerId}`);
|
173
|
-
const conn = this.#provider.webrtcConns?.get(peerId);
|
174
|
-
if (!conn?.peer) {
|
175
|
-
console.warn(`[P2P] No WebRTC connection found for peer: ${peerId}`);
|
176
|
-
return;
|
177
|
-
}
|
178
|
-
console.log(`[P2P] WebRTC connection state for ${peerId}:`, conn.peer.connectionState);
|
179
|
-
const channel = conn.peer.createDataChannel(this.#CHANNEL_LABEL, {
|
180
|
-
ordered: true,
|
181
|
-
maxRetransmits: 3
|
182
|
-
});
|
183
|
-
this.#setupChannel(channel, peerId);
|
184
|
-
}
|
185
|
-
#setupChannel(channel, peerId) {
|
186
|
-
channel.binaryType = "arraybuffer";
|
187
|
-
channel.onopen = () => {
|
188
|
-
console.log(`[P2P] Data channel opened: ${peerId}`);
|
189
|
-
this.#peerChannels.set(peerId, channel);
|
190
|
-
};
|
191
|
-
channel.onclose = () => {
|
192
|
-
console.log(`[P2P] Data channel closed: ${peerId}`);
|
193
|
-
this.#peerChannels.delete(peerId);
|
194
|
-
};
|
195
|
-
channel.onmessage = (event) => this.#handleMessage(event.data, peerId);
|
196
|
-
}
|
197
|
-
#setupSampleListener() {
|
198
|
-
this.#samplesMap.observe((event) => {
|
199
|
-
event.changes.keys.forEach((change, uuid) => {
|
200
|
-
if (change.action === "add") {
|
201
|
-
const sampleRef = this.#samplesMap.get(uuid);
|
202
|
-
if (sampleRef?.ownerId === this.#getMyId()) {
|
203
|
-
console.log(`[P2P] Own sample reference added: ${uuid}`);
|
204
|
-
}
|
205
|
-
}
|
206
|
-
});
|
207
|
-
});
|
208
|
-
}
|
209
|
-
#sendSample(channel, uuid, zipData, metadata) {
|
210
|
-
console.log(`[P2P] Starting sample transfer: ${uuid} (${zipData.byteLength} bytes)`);
|
211
|
-
channel.send(JSON.stringify({
|
212
|
-
type: "start",
|
213
|
-
uuid,
|
214
|
-
size: zipData.byteLength,
|
215
|
-
metadata
|
216
|
-
}));
|
217
|
-
const chunks = Math.ceil(zipData.byteLength / this.#CHUNK_SIZE);
|
218
|
-
for (let i = 0; i < chunks; i++) {
|
219
|
-
const chunk = zipData.slice(i * this.#CHUNK_SIZE, (i + 1) * this.#CHUNK_SIZE);
|
220
|
-
channel.send(chunk);
|
221
|
-
}
|
222
|
-
channel.send(JSON.stringify({ type: "complete", uuid }));
|
223
|
-
console.log(`[P2P] Sample transfer completed: ${uuid} (${chunks} chunks)`);
|
224
|
-
}
|
225
|
-
#handleMessage(data, peerId) {
|
226
|
-
if (typeof data === "string") {
|
227
|
-
const msg = JSON.parse(data);
|
228
|
-
if (msg.type === "start") {
|
229
|
-
console.log(`[P2P] Receiving sample from ${peerId}: ${msg.uuid} (${msg.size} bytes)`);
|
230
|
-
const transfer = this.#activeTransfers.get(msg.uuid);
|
231
|
-
if (isNotUndefined(transfer)) {
|
232
|
-
transfer.expectedSize = msg.size;
|
233
|
-
transfer.metadata = msg.metadata;
|
234
|
-
}
|
235
|
-
else {
|
236
|
-
console.warn(`[P2P] Received sample start for unknown transfer: ${msg.uuid}`);
|
237
|
-
}
|
238
|
-
}
|
239
|
-
else if (msg.type === "complete") {
|
240
|
-
console.log(`[P2P] Sample transfer complete from ${peerId}: ${msg.uuid}`);
|
241
|
-
this.#complete(msg.uuid);
|
242
|
-
}
|
243
|
-
else if (msg.type === "request") {
|
244
|
-
console.log(`[P2P] Sample request from ${peerId}: ${msg.uuid}`);
|
245
|
-
this.#handleSampleRequest(msg.uuid);
|
246
|
-
}
|
247
|
-
}
|
248
|
-
else {
|
249
|
-
const uuid = Array.from(this.#activeTransfers.keys()).find(id => {
|
250
|
-
const transfer = this.#activeTransfers.get(id);
|
251
|
-
if (isNotUndefined(transfer)) {
|
252
|
-
return transfer.receivedSize < transfer.expectedSize;
|
253
|
-
}
|
254
|
-
return false;
|
255
|
-
});
|
256
|
-
if (isNotUndefined(uuid)) {
|
257
|
-
const transfer = this.#activeTransfers.get(uuid);
|
258
|
-
if (isNotUndefined(transfer)) {
|
259
|
-
transfer.chunks.push(data);
|
260
|
-
transfer.receivedSize += data.byteLength;
|
261
|
-
const progress = transfer.receivedSize / transfer.expectedSize;
|
262
|
-
console.log(`[P2P] Receiving sample ${uuid}: ${Math.round(progress * 100)}% (${transfer.receivedSize}/${transfer.expectedSize} bytes)`);
|
263
|
-
transfer.progress(progress);
|
264
|
-
}
|
265
|
-
}
|
266
|
-
}
|
267
|
-
}
|
268
|
-
#handleSampleRequest(uuid) {
|
269
|
-
SampleStorage.loadSample(UUID.parse(uuid)).then(async ([audio, peaks, meta]) => {
|
270
|
-
console.log(`[P2P] Responding to sample request: ${uuid}`);
|
271
|
-
const zipData = await this.#createZipFile(audio, peaks.toArrayBuffer(), meta);
|
272
|
-
this.#peerChannels.forEach(channel => {
|
273
|
-
if (channel.readyState === "open") {
|
274
|
-
this.#sendSample(channel, uuid, zipData, meta);
|
275
|
-
}
|
276
|
-
});
|
277
|
-
}).catch(error => {
|
278
|
-
console.log(`[P2P] Sample not available for request: ${uuid}`, error);
|
279
|
-
});
|
280
|
-
}
|
281
|
-
async #complete(uuid) {
|
282
|
-
const transfer = asDefined(this.#activeTransfers.get(uuid), `Expected active transfer for ${uuid}`);
|
283
|
-
console.log(`[P2P] Reconstructing sample: ${uuid}`);
|
284
|
-
const zipBuffer = new ArrayBuffer(transfer.expectedSize);
|
285
|
-
const zipView = new Uint8Array(zipBuffer);
|
286
|
-
let offset = 0;
|
287
|
-
transfer.chunks.forEach(chunk => {
|
288
|
-
zipView.set(new Uint8Array(chunk), offset);
|
289
|
-
offset += chunk.byteLength;
|
290
|
-
});
|
291
|
-
try {
|
292
|
-
const { audioData, peaks, metadata } = await this.#extractZipFile(zipBuffer);
|
293
|
-
await SampleStorage.saveSample({
|
294
|
-
uuid: UUID.parse(uuid),
|
295
|
-
audio: audioData,
|
296
|
-
peaks: peaks,
|
297
|
-
meta: metadata
|
298
|
-
});
|
299
|
-
console.log(`[P2P] Sample saved successfully: ${uuid}`);
|
300
|
-
transfer.resolve([audioData, metadata]);
|
301
|
-
this.#pendingFetches.delete(uuid);
|
302
|
-
}
|
303
|
-
catch (error) {
|
304
|
-
console.error(`[P2P] Failed to save sample ${uuid}:`, error);
|
305
|
-
transfer.reject(error);
|
306
|
-
this.#pendingFetches.delete(uuid);
|
307
|
-
}
|
308
|
-
finally {
|
309
|
-
clearTimeout(transfer.timeout);
|
310
|
-
}
|
311
|
-
this.#activeTransfers.delete(uuid);
|
312
|
-
}
|
313
|
-
#getMyId() {
|
314
|
-
return this.#provider.awareness.clientID.toString();
|
315
|
-
}
|
316
|
-
#audioDataToArrayBuffer(audioData) {
|
317
|
-
const totalSamples = audioData.numberOfFrames * audioData.numberOfChannels;
|
318
|
-
const buffer = new ArrayBuffer(4 + 4 + 4 + totalSamples * 4);
|
319
|
-
const view = new DataView(buffer);
|
320
|
-
view.setUint32(0, audioData.sampleRate, true);
|
321
|
-
view.setUint32(4, audioData.numberOfFrames, true);
|
322
|
-
view.setUint32(8, audioData.numberOfChannels, true);
|
323
|
-
let offset = 12;
|
324
|
-
for (let frame = 0; frame < audioData.numberOfFrames; frame++) {
|
325
|
-
for (let channel = 0; channel < audioData.numberOfChannels; channel++) {
|
326
|
-
view.setFloat32(offset, audioData.frames[channel][frame], true);
|
327
|
-
offset += 4;
|
328
|
-
}
|
329
|
-
}
|
330
|
-
return buffer;
|
331
|
-
}
|
332
|
-
#arrayBufferToAudioData(buffer) {
|
333
|
-
const view = new DataView(buffer);
|
334
|
-
const sampleRate = view.getUint32(0, true);
|
335
|
-
const numberOfFrames = view.getUint32(4, true);
|
336
|
-
const numberOfChannels = view.getUint32(8, true);
|
337
|
-
const frames = [];
|
338
|
-
for (let channel = 0; channel < numberOfChannels; channel++) {
|
339
|
-
frames.push(new Float32Array(numberOfFrames));
|
340
|
-
}
|
341
|
-
let offset = 12;
|
342
|
-
for (let frame = 0; frame < numberOfFrames; frame++) {
|
343
|
-
for (let channel = 0; channel < numberOfChannels; channel++) {
|
344
|
-
frames[channel][frame] = view.getFloat32(offset, true);
|
345
|
-
offset += 4;
|
346
|
-
}
|
347
|
-
}
|
348
|
-
return { sampleRate, numberOfFrames, numberOfChannels, frames };
|
349
|
-
}
|
350
|
-
}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import { Progress, UUID } from "@opendaw/lib-std";
|
2
|
-
import { Sample } from "@opendaw/studio-adapters";
|
3
|
-
export type SampleImporter = {
|
4
|
-
importSample(sample: {
|
5
|
-
uuid: UUID.Bytes;
|
6
|
-
name: string;
|
7
|
-
arrayBuffer: ArrayBuffer;
|
8
|
-
progressHandler?: Progress.Handler;
|
9
|
-
}): Promise<Sample>;
|
10
|
-
};
|
11
|
-
//# sourceMappingURL=SampleImporter.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"SampleImporter.d.ts","sourceRoot":"","sources":["../../src/samples/SampleImporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAA;AAE/C,MAAM,MAAM,cAAc,GAAG;IACzB,YAAY,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,WAAW,CAAC;QACzB,eAAe,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAA;KACrC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACtB,CAAA"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"YMapper.d.ts","sourceRoot":"","sources":["../../src/yjs/YMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAEP,GAAG,EAON,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,yBAAiB,OAAO,CAAC;IACd,MAAM,YAAY,GAAI,KAAK,GAAG,KAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAKpD,CAAA;IAEM,MAAM,eAAe,GAAI,KAAK,GAAG,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAG,IAgBlE,CAAA;IAEM,MAAM,aAAa,GAAI,yCAAyC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,SAAS,MAAM,KAAG,OAMxH,CAAA;IAEM,MAAM,OAAO,GAAI,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CACS,CAAA;CAYlH"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"YService.d.ts","sourceRoot":"","sources":["../../src/yjs/YService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAmC,MAAM,kBAAkB,CAAA;AAQjF,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAA;AAI1C,yBAAiB,QAAQ,CAAC;IAKf,MAAM,eAAe,GAAU,YAAY,MAAM,CAAC,OAAO,CAAC,EAC3B,KAAK,UAAU,EACf,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAiDvE,CAAA;CACJ"}
|
package/dist/yjs/YSync.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"YSync.d.ts","sourceRoot":"","sources":["../../src/yjs/YSync.ts"],"names":[],"mappings":"AAAA,OAAO,EASH,QAAQ,EAER,UAAU,EAGb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAa,QAAQ,EAA2D,MAAM,kBAAkB,CAAA;AAE/G,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAIxB,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACvB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,GAAG,CAAA;IACV,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CAC/B,CAAA;AAED,qBAAa,KAAK,CAAC,CAAC,CAAE,YAAW,UAAU;;IACvC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,OAAO;WAItB,QAAQ,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,GAAG,EAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;WAa7D,IAAI,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,GAAG,EAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBA4B1D,EAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IASnD,SAAS,IAAI,IAAI;CAkJpB"}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|