V42+V42A: fix seam click khi loop master FX — worklet wrap crossfade (tail->head) + native WebAudio loop cho bypass (het click beat 0); dip bypass 5ms; PDC playhead freeze/snap

This commit is contained in:
2026-08-28 11:35:32 +07:00
parent 9ccc28d211
commit fa61712ecc
10 changed files with 690 additions and 108 deletions
+4 -2
View File
@@ -1,6 +1,8 @@
// app/static/js/services/bridgeAudioWorklet.js
// VSTi crackle fix: audio sink chay tren audio thread (khong jank main thread).
// - Ring block 256 mau, toi da 64 block (~371ms @48k) — hap thu jitter pump.
// - Ring block 256 mau, toi da 8 block (~42ms @48k) — hap thu jitter pump
// nhung gioi han backlog: 64 block (~371ms) tao tre ~0.3-0.4s khi play/
// keyboard preview (audio moi phai cho ring cu chay het).
// - Underrun: fade ve 0 thay vi click (hard silence).
// - Resume sau silence: fade vao tu 0.
// - Overrun: drop block cu nhat + crossfade 64 mau tai diem drop (het click).
@@ -8,7 +10,7 @@ class BridgeAudioSinkProcessor extends AudioWorkletProcessor {
constructor() {
super();
this._ring = [];
this._MAX = 64;
this._MAX = 8;
this._gain = 1.0;
this._lastOutL = 0.0;
this._lastOutR = 0.0;