V45: D17 seamless loop wrap + D18 stop solo note-off (Qin) + D18b/c guard + engine VST load fixes
- D17: wrap_info/wrap-skip, fx wrap xfade, playhead-derived scheduling - D18: solo stop -> NOTE_OFF all sounding timeline pitches + CC123/CC120 - D18b: track audible gain guard, tracksRef fallback - D18c: timelinePitchesRef per-track Set, kill at applyAllTrackMuteSolo - bridge ring _MAX 16, index v=202608290928 - plugins.py/vst_engine.py/fx_realtime.py/JuceFxEngine.cpp: VSTi load + Qin fixes (uncommitted 12:18)
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
console.warn('[BridgeAudioNode] AudioWorklet unavailable — ScriptProcessor fallback');
|
||||
return false;
|
||||
}
|
||||
var url = '/static/js/services/bridgeAudioWorklet.js?v=202608272301';
|
||||
var url = '/static/js/services/bridgeAudioWorklet.js?v=202608291200';
|
||||
_ctx.audioWorklet.addModule(url).then(function () {
|
||||
if (!_initialized) return; // disconnect() happened while loading
|
||||
if (_useWorklet) return; // already set up (init retry)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// 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 8 block (~42ms @48k) — hap thu jitter pump
|
||||
// - Ring block 256 mau, toi da 16 block (~85ms @48k) — hap thu jitter pump
|
||||
// (option 2: 8->16 de dung tremolo crackle; backlog lon hon ~85ms)
|
||||
// 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).
|
||||
@@ -10,7 +11,7 @@ class BridgeAudioSinkProcessor extends AudioWorkletProcessor {
|
||||
constructor() {
|
||||
super();
|
||||
this._ring = [];
|
||||
this._MAX = 8;
|
||||
this._MAX = 16;
|
||||
this._gain = 1.0;
|
||||
this._lastOutL = 0.0;
|
||||
this._lastOutR = 0.0;
|
||||
|
||||
Reference in New Issue
Block a user