V45.8: fix Qin VST2 loop wrap crackle - wrap release them NOTE_OFF per-pitch (timelinePitchesRef) vi CC123 khong an voi VST2 (Qin bo qua all-notes-off CC) -> note cu ring qua seam re-trigger cung pitch = giat; per-note OFF da chung minh an (panic 128 noteOff o STOP, D18c); v=202608292315
This commit is contained in:
@@ -26323,6 +26323,19 @@ const App = () => {
|
||||
var _ch = trackMidiChannelsRef.current[_tid];
|
||||
window.NativeBridgeService.dispatchMidiEvent('CC', _ch, 123, 0, 0, 0, 0, false);
|
||||
if (!_wrapRelease) window.NativeBridgeService.dispatchMidiEvent('CC', _ch, 120, 0, 0, 0, 0, false);
|
||||
// D18d: wrap - NOTE_OFF tung pitch dang keu (timelinePitchesRef).
|
||||
// CC123 khong an voi VST2 (Qin bo qua all-notes-off CC) -> note cu
|
||||
// ring qua seam -> re-trigger cung pitch chong nhau = crackle.
|
||||
// Per-note OFF da chung minh an (panic 128 noteOff o STOP; D18c).
|
||||
if (_wrapRelease) {
|
||||
var _tps = (timelinePitchesRef.current || {})[_tid];
|
||||
if (_tps && _tps.size) {
|
||||
_tps.forEach(function (_p) {
|
||||
window.NativeBridgeService.dispatchMidiEvent('NOTE_OFF', _ch, _p, 0, 0, 0, 0, false);
|
||||
});
|
||||
}
|
||||
if (timelinePitchesRef.current) delete timelinePitchesRef.current[_tid];
|
||||
}
|
||||
});
|
||||
}
|
||||
} catch (e) { console.warn('[Stop] midi panic error:', e); }
|
||||
|
||||
Reference in New Issue
Block a user