@onjmin/dtm 2.1.1 → 2.1.2
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/index.js +18 -12
- package/dist/index.mjs +18 -12
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -19687,6 +19687,7 @@ var mountDAW = (target, options = {}) => {
|
|
|
19687
19687
|
redrawAll();
|
|
19688
19688
|
},
|
|
19689
19689
|
onEnd: (interrupted) => {
|
|
19690
|
+
options.onScheduleFade?.(null);
|
|
19690
19691
|
if (interrupted) {
|
|
19691
19692
|
playbackState = "paused";
|
|
19692
19693
|
pausedPlayStep = currentPlayStep;
|
|
@@ -19778,15 +19779,20 @@ var mountDAW = (target, options = {}) => {
|
|
|
19778
19779
|
}
|
|
19779
19780
|
if (fadeOutSec > 0) {
|
|
19780
19781
|
const endStep = getSongEndStepExact();
|
|
19781
|
-
|
|
19782
|
-
|
|
19783
|
-
|
|
19784
|
-
|
|
19785
|
-
|
|
19786
|
-
|
|
19787
|
-
|
|
19788
|
-
|
|
19789
|
-
|
|
19782
|
+
if (endStep > fromStep) {
|
|
19783
|
+
const totalDurationSec = (endStep - fromStep) * secondsPerStepFade;
|
|
19784
|
+
if (totalDurationSec > 0.1) {
|
|
19785
|
+
const fadeOutEndAt = anchor + totalDurationSec;
|
|
19786
|
+
const earliestStart = params.fadeInEndAt ?? anchor;
|
|
19787
|
+
const fadeOutStartAt = Math.max(
|
|
19788
|
+
fadeOutEndAt - fadeOutSec,
|
|
19789
|
+
earliestStart
|
|
19790
|
+
);
|
|
19791
|
+
if (fadeOutStartAt < fadeOutEndAt) {
|
|
19792
|
+
params.fadeOutStartAt = fadeOutStartAt;
|
|
19793
|
+
params.fadeOutEndAt = fadeOutEndAt;
|
|
19794
|
+
}
|
|
19795
|
+
}
|
|
19790
19796
|
}
|
|
19791
19797
|
}
|
|
19792
19798
|
options.onScheduleFade?.(params);
|
|
@@ -24235,6 +24241,8 @@ var createDtmStudio = async (options = {}) => {
|
|
|
24235
24241
|
};
|
|
24236
24242
|
};
|
|
24237
24243
|
const resumeAudio = () => {
|
|
24244
|
+
fadeGain.gain.cancelScheduledValues(audioCtx.currentTime);
|
|
24245
|
+
fadeGain.gain.setValueAtTime(1, audioCtx.currentTime);
|
|
24238
24246
|
if (audioCtx.state === "closed") return Promise.resolve();
|
|
24239
24247
|
return audioCtx.resume();
|
|
24240
24248
|
};
|
|
@@ -25078,9 +25086,7 @@ var createDtmStudio = async (options = {}) => {
|
|
|
25078
25086
|
if (!sfInst) return;
|
|
25079
25087
|
const vol = options2.volume ?? 80;
|
|
25080
25088
|
const dur = options2.duration ?? 1;
|
|
25081
|
-
|
|
25082
|
-
await audioCtx.resume();
|
|
25083
|
-
}
|
|
25089
|
+
await resumeAudio();
|
|
25084
25090
|
const { midi, detuneCents } = unitsToMidiDetune(options2.pitchUnits);
|
|
25085
25091
|
sfInst.play({
|
|
25086
25092
|
ctx: audioCtx,
|
package/dist/index.mjs
CHANGED
|
@@ -19505,6 +19505,7 @@ var mountDAW = (target, options = {}) => {
|
|
|
19505
19505
|
redrawAll();
|
|
19506
19506
|
},
|
|
19507
19507
|
onEnd: (interrupted) => {
|
|
19508
|
+
options.onScheduleFade?.(null);
|
|
19508
19509
|
if (interrupted) {
|
|
19509
19510
|
playbackState = "paused";
|
|
19510
19511
|
pausedPlayStep = currentPlayStep;
|
|
@@ -19596,15 +19597,20 @@ var mountDAW = (target, options = {}) => {
|
|
|
19596
19597
|
}
|
|
19597
19598
|
if (fadeOutSec > 0) {
|
|
19598
19599
|
const endStep = getSongEndStepExact();
|
|
19599
|
-
|
|
19600
|
-
|
|
19601
|
-
|
|
19602
|
-
|
|
19603
|
-
|
|
19604
|
-
|
|
19605
|
-
|
|
19606
|
-
|
|
19607
|
-
|
|
19600
|
+
if (endStep > fromStep) {
|
|
19601
|
+
const totalDurationSec = (endStep - fromStep) * secondsPerStepFade;
|
|
19602
|
+
if (totalDurationSec > 0.1) {
|
|
19603
|
+
const fadeOutEndAt = anchor + totalDurationSec;
|
|
19604
|
+
const earliestStart = params.fadeInEndAt ?? anchor;
|
|
19605
|
+
const fadeOutStartAt = Math.max(
|
|
19606
|
+
fadeOutEndAt - fadeOutSec,
|
|
19607
|
+
earliestStart
|
|
19608
|
+
);
|
|
19609
|
+
if (fadeOutStartAt < fadeOutEndAt) {
|
|
19610
|
+
params.fadeOutStartAt = fadeOutStartAt;
|
|
19611
|
+
params.fadeOutEndAt = fadeOutEndAt;
|
|
19612
|
+
}
|
|
19613
|
+
}
|
|
19608
19614
|
}
|
|
19609
19615
|
}
|
|
19610
19616
|
options.onScheduleFade?.(params);
|
|
@@ -24052,6 +24058,8 @@ var createDtmStudio = async (options = {}) => {
|
|
|
24052
24058
|
};
|
|
24053
24059
|
};
|
|
24054
24060
|
const resumeAudio = () => {
|
|
24061
|
+
fadeGain.gain.cancelScheduledValues(audioCtx.currentTime);
|
|
24062
|
+
fadeGain.gain.setValueAtTime(1, audioCtx.currentTime);
|
|
24055
24063
|
if (audioCtx.state === "closed") return Promise.resolve();
|
|
24056
24064
|
return audioCtx.resume();
|
|
24057
24065
|
};
|
|
@@ -24895,9 +24903,7 @@ var createDtmStudio = async (options = {}) => {
|
|
|
24895
24903
|
if (!sfInst) return;
|
|
24896
24904
|
const vol = options2.volume ?? 80;
|
|
24897
24905
|
const dur = options2.duration ?? 1;
|
|
24898
|
-
|
|
24899
|
-
await audioCtx.resume();
|
|
24900
|
-
}
|
|
24906
|
+
await resumeAudio();
|
|
24901
24907
|
const { midi, detuneCents } = unitsToMidiDetune(options2.pitchUnits);
|
|
24902
24908
|
sfInst.play({
|
|
24903
24909
|
ctx: audioCtx,
|
package/package.json
CHANGED