@opendaw/studio-core 0.0.56 → 0.0.58
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/AudioOfflineRenderer.d.ts.map +1 -1
- package/dist/AudioOfflineRenderer.js +30 -17
- package/dist/EffectBox.d.ts +2 -2
- package/dist/EffectBox.d.ts.map +1 -1
- package/dist/EffectFactories.d.ts +3 -0
- package/dist/EffectFactories.d.ts.map +1 -1
- package/dist/EffectFactories.js +40 -27
- package/dist/EffectFactory.d.ts +3 -2
- package/dist/EffectFactory.d.ts.map +1 -1
- package/dist/Engine.d.ts +2 -0
- package/dist/Engine.d.ts.map +1 -1
- package/dist/EngineFacade.d.ts +2 -0
- package/dist/EngineFacade.d.ts.map +1 -1
- package/dist/EngineFacade.js +2 -0
- package/dist/EngineWorklet.d.ts +2 -0
- package/dist/EngineWorklet.d.ts.map +1 -1
- package/dist/EngineWorklet.js +13 -1
- package/dist/ExternalLib.d.ts +6 -0
- package/dist/ExternalLib.d.ts.map +1 -0
- package/dist/ExternalLib.js +11 -0
- package/dist/FilePickerAcceptTypes.d.ts +1 -0
- package/dist/FilePickerAcceptTypes.d.ts.map +1 -1
- package/dist/FilePickerAcceptTypes.js +4 -0
- package/dist/Preferences.d.ts +2 -0
- package/dist/Preferences.d.ts.map +1 -1
- package/dist/Preferences.js +2 -1
- package/dist/capture/RecordAudio.d.ts +1 -1
- package/dist/capture/RecordAudio.d.ts.map +1 -1
- package/dist/capture/RecordAudio.js +4 -5
- package/dist/capture/RecordMidi.d.ts +1 -1
- package/dist/capture/RecordMidi.d.ts.map +1 -1
- package/dist/capture/RecordMidi.js +1 -2
- package/dist/capture/Recording.js +2 -2
- package/dist/dawproject/AudioUnitExportLayout.d.ts.map +1 -1
- package/dist/dawproject/AudioUnitExportLayout.js +1 -1
- package/dist/dawproject/BuiltinDevices.d.ts +3 -3
- package/dist/dawproject/BuiltinDevices.d.ts.map +1 -1
- package/dist/dawproject/BuiltinDevices.js +1 -1
- package/dist/dawproject/DawProject.d.ts +3 -3
- package/dist/dawproject/DawProject.d.ts.map +1 -1
- package/dist/dawproject/DawProject.js +6 -5
- package/dist/dawproject/DawProjectExporter.d.ts +2 -2
- package/dist/dawproject/DawProjectExporter.d.ts.map +1 -1
- package/dist/dawproject/DawProjectExporter.js +5 -6
- package/dist/dawproject/DawProjectExporter.test.js +24 -28
- package/dist/dawproject/DawProjectImporter.d.ts.map +1 -1
- package/dist/dawproject/DawProjectImporter.js +3 -6
- package/dist/dawproject/DawProjectService.d.ts.map +1 -1
- package/dist/dawproject/DawProjectService.js +11 -1
- package/dist/dawproject/DeviceIO.d.ts +1 -1
- package/dist/dawproject/DeviceIO.d.ts.map +1 -1
- package/dist/dawproject/DeviceIO.js +2 -2
- package/dist/index.d.ts +1 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -9
- package/dist/processors.js +19 -17
- package/dist/processors.js.map +4 -4
- package/dist/project/Project.d.ts +2 -2
- package/dist/project/Project.d.ts.map +1 -1
- package/dist/project/Project.js +18 -64
- package/dist/project/ProjectApi.d.ts +5 -8
- package/dist/project/ProjectApi.d.ts.map +1 -1
- package/dist/project/ProjectApi.js +8 -59
- package/dist/project/ProjectBundle.d.ts.map +1 -1
- package/dist/project/ProjectBundle.js +3 -2
- package/dist/project/ProjectMigration.d.ts.map +1 -1
- package/dist/project/ProjectMigration.js +64 -3
- package/dist/project/ProjectStorage.js +2 -2
- package/dist/project/index.d.ts +0 -1
- package/dist/project/index.d.ts.map +1 -1
- package/dist/project/index.js +0 -1
- package/dist/samples/OpenSampleAPI.d.ts.map +1 -1
- package/dist/samples/OpenSampleAPI.js +6 -0
- package/dist/samples/SampleService.js +1 -1
- package/dist/soundfont/DefaultSoundfontLoader.d.ts.map +1 -1
- package/dist/soundfont/DefaultSoundfontLoader.js +3 -2
- package/dist/soundfont/SoundfontService.d.ts.map +1 -1
- package/dist/soundfont/SoundfontService.js +2 -2
- package/dist/ui/RegionClipResolver.d.ts +37 -0
- package/dist/ui/RegionClipResolver.d.ts.map +1 -0
- package/dist/ui/RegionClipResolver.js +179 -0
- package/dist/ui/RegionClipResolver.test.d.ts +2 -0
- package/dist/ui/RegionClipResolver.test.d.ts.map +1 -0
- package/dist/ui/RegionClipResolver.test.js +166 -0
- package/dist/ui/RegionModifyStrategies.d.ts +25 -0
- package/dist/ui/RegionModifyStrategies.d.ts.map +1 -0
- package/dist/ui/RegionModifyStrategies.js +25 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +2 -0
- package/dist/workers-main.js +4 -2
- package/dist/workers-main.js.map +3 -3
- package/dist/ysync/YService.js +2 -2
- package/package.json +17 -16
- package/dist/AudioUnitOrdering.d.ts +0 -3
- package/dist/AudioUnitOrdering.d.ts.map +0 -1
- package/dist/AudioUnitOrdering.js +0 -7
- package/dist/ColorCodes.d.ts +0 -7
- package/dist/ColorCodes.d.ts.map +0 -1
- package/dist/ColorCodes.js +0 -32
- package/dist/Colors.d.ts +0 -15
- package/dist/Colors.d.ts.map +0 -1
- package/dist/Colors.js +0 -23
- package/dist/InstrumentBox.d.ts +0 -3
- package/dist/InstrumentBox.d.ts.map +0 -1
- package/dist/InstrumentBox.js +0 -1
- package/dist/InstrumentFactories.d.ts +0 -33
- package/dist/InstrumentFactories.d.ts.map +0 -1
- package/dist/InstrumentFactories.js +0 -122
- package/dist/InstrumentFactory.d.ts +0 -13
- package/dist/InstrumentFactory.d.ts.map +0 -1
- package/dist/InstrumentFactory.js +0 -1
- package/dist/InstrumentOptions.d.ts +0 -9
- package/dist/InstrumentOptions.d.ts.map +0 -1
- package/dist/InstrumentOptions.js +0 -1
- package/dist/InstrumentProduct.d.ts +0 -8
- package/dist/InstrumentProduct.d.ts.map +0 -1
- package/dist/InstrumentProduct.js +0 -1
- package/dist/project/ProjectUtils.d.ts +0 -12
- package/dist/project/ProjectUtils.d.ts.map +0 -1
- package/dist/project/ProjectUtils.js +0 -153
- package/dist/utils/AutofitUtils.d.ts +0 -7
- package/dist/utils/AutofitUtils.d.ts.map +0 -1
- package/dist/utils/AutofitUtils.js +0 -78
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -1
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { AudioPlayback } from "@opendaw/studio-enums";
|
|
2
|
-
import { PPQN } from "@opendaw/lib-dsp";
|
|
3
|
-
import { ArrayMultimap, isNull, Iterables } from "@opendaw/lib-std";
|
|
4
|
-
export var AutofitUtils;
|
|
5
|
-
(function (AutofitUtils) {
|
|
6
|
-
// Since we do not have an unsynchronized playback, we are going to change the region that has 'autofit' enabled.
|
|
7
|
-
// This will cause resizing the regions to always play at absolute time (no adaption to tempo change).
|
|
8
|
-
AutofitUtils.changeBpm = (project, newBpm, mark) => {
|
|
9
|
-
const { editing, timelineBox: { bpm: bpmField }, rootBoxAdapter } = project;
|
|
10
|
-
const autofitRegions = rootBoxAdapter.audioUnits.adapters()
|
|
11
|
-
.flatMap(audioUnitBoxAdapter => audioUnitBoxAdapter.tracks.values()
|
|
12
|
-
.map(trackBoxAdapter => trackBoxAdapter.regions.collection.asArray()
|
|
13
|
-
.filter((regionBoxAdapter) => regionBoxAdapter.accept({
|
|
14
|
-
visitAudioRegionBoxAdapter: (_region) => true
|
|
15
|
-
}) ?? false)));
|
|
16
|
-
const oldBpm = bpmField.getValue();
|
|
17
|
-
const scale = newBpm / oldBpm;
|
|
18
|
-
editing.modify(() => {
|
|
19
|
-
autofitRegions.forEach(regions => {
|
|
20
|
-
for (const [region, next] of Iterables.pairWise(regions)) {
|
|
21
|
-
// we cannot filter them upfront because the next region would be missing as a limit
|
|
22
|
-
if (region.box.playback.getValue() !== AudioPlayback.AudioFit) {
|
|
23
|
-
continue;
|
|
24
|
-
}
|
|
25
|
-
let durationInSeconds = region.file.endInSeconds - region.file.startInSeconds;
|
|
26
|
-
if (durationInSeconds === 0) {
|
|
27
|
-
console.warn("AutofitUtils.changeBpm: durationInSeconds is 0. Try to access file.");
|
|
28
|
-
const { numberOfFrames, sampleRate } = region.file.getOrCreateLoader().data
|
|
29
|
-
.unwrap("AutofitUtils.changeBpm: durationInSeconds is 0 and audio is not loaded yet.");
|
|
30
|
-
durationInSeconds = numberOfFrames / sampleRate;
|
|
31
|
-
}
|
|
32
|
-
const max = isNull(next) ? Number.POSITIVE_INFINITY : next.position;
|
|
33
|
-
const durationInPulses = Math.min(max, PPQN.secondsToPulses(durationInSeconds, newBpm));
|
|
34
|
-
const oldDuration = region.box.duration.getValue();
|
|
35
|
-
const oldLoopOffset = region.box.loopOffset.getValue();
|
|
36
|
-
const oldLoopDuration = region.box.loopDuration.getValue();
|
|
37
|
-
const repeat = oldDuration / oldLoopDuration;
|
|
38
|
-
region.box.duration.setValue(durationInPulses * repeat);
|
|
39
|
-
region.box.loopDuration.setValue(durationInPulses);
|
|
40
|
-
region.box.loopOffset.setValue(oldLoopOffset * scale);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
bpmField.setValue(newBpm);
|
|
44
|
-
}, mark);
|
|
45
|
-
};
|
|
46
|
-
AutofitUtils.regionsToAutofit = (project, regions) => {
|
|
47
|
-
if (regions.length === 0)
|
|
48
|
-
return;
|
|
49
|
-
const map = new ArrayMultimap();
|
|
50
|
-
regions.forEach(region => map.add(region.trackBoxAdapter
|
|
51
|
-
.unwrap("AutofitUtils.regionsToAutofit: Could not unwrap trackBoxAdapter"), region));
|
|
52
|
-
const { editing, timelineBox: { bpm: bpmField } } = project;
|
|
53
|
-
const bpm = bpmField.getValue();
|
|
54
|
-
editing.modify(() => map.forEach((trackBoxAdapter, regions) => {
|
|
55
|
-
for (const region of regions) {
|
|
56
|
-
const next = trackBoxAdapter.regions.collection.greaterEqual(region.complete + 1);
|
|
57
|
-
const max = isNull(next) ? Number.POSITIVE_INFINITY : next.position;
|
|
58
|
-
let durationInSeconds = region.file.endInSeconds - region.file.startInSeconds;
|
|
59
|
-
if (durationInSeconds === 0) {
|
|
60
|
-
console.warn("AutofitUtils.regionsToAutofit: durationInSeconds is 0. Try to access file.");
|
|
61
|
-
const { numberOfFrames, sampleRate } = region.file.getOrCreateLoader().data
|
|
62
|
-
.unwrap("AutofitUtils.regionsToAutofit: durationInSeconds is 0 and audio is not loaded yet.");
|
|
63
|
-
durationInSeconds = numberOfFrames / sampleRate;
|
|
64
|
-
}
|
|
65
|
-
const durationInPulses = Math.min(max, PPQN.secondsToPulses(durationInSeconds, bpm));
|
|
66
|
-
const oldDuration = region.box.duration.getValue();
|
|
67
|
-
const oldLoopOffset = region.box.loopOffset.getValue();
|
|
68
|
-
const oldLoopDuration = region.box.loopDuration.getValue();
|
|
69
|
-
const repeat = oldDuration / oldLoopDuration;
|
|
70
|
-
const scale = durationInPulses / oldLoopDuration;
|
|
71
|
-
region.box.playback.setValue(AudioPlayback.AudioFit);
|
|
72
|
-
region.box.duration.setValue(durationInPulses * repeat);
|
|
73
|
-
region.box.loopDuration.setValue(durationInPulses);
|
|
74
|
-
region.box.loopOffset.setValue(oldLoopOffset * scale);
|
|
75
|
-
}
|
|
76
|
-
}));
|
|
77
|
-
};
|
|
78
|
-
})(AutofitUtils || (AutofitUtils = {}));
|
package/dist/utils/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
|
package/dist/utils/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./AutofitUtils";
|