FIX: sửa lỗi MIDI item không play được qua carla, loop không tắt với soundfont
This commit is contained in:
+17
-1
@@ -9096,7 +9096,23 @@ const PianoRollTabEditor = ({ st, zoom, bpm, viewportWidth, activeTracks, onClos
|
||||
} catch (err) { console.error('playNote error:', err); }
|
||||
}
|
||||
},
|
||||
onMouseUp: () => { keybedMouseDownRef.current = false; }
|
||||
onMouseUp: () => {
|
||||
keybedMouseDownRef.current = false;
|
||||
// Dừng note khi thả phím — tránh kẹt âm (loop liên tục) với soundfont
|
||||
try {
|
||||
if (window.SonicSF && window.SonicSF.stopNote) window.SonicSF.stopNote(kbCtx.ch, pitch);
|
||||
} catch (e) {}
|
||||
if (window.__carlaKeybedTimer) { clearTimeout(window.__carlaKeybedTimer); window.__carlaKeybedTimer = null; }
|
||||
if (window.SonicCarlaMidi) { try { window.SonicCarlaMidi.noteOff(kbCtx.ch, pitch); } catch (e) {} }
|
||||
},
|
||||
onMouseLeave: () => {
|
||||
if (!keybedMouseDownRef.current) return;
|
||||
// Kéo chuột ra khỏi phím → dừng note của phím đó
|
||||
try {
|
||||
if (window.SonicSF && window.SonicSF.stopNote) window.SonicSF.stopNote(kbCtx.ch, pitch);
|
||||
} catch (e) {}
|
||||
if (window.SonicCarlaMidi) { try { window.SonicCarlaMidi.noteOff(kbCtx.ch, pitch); } catch (e) {} }
|
||||
}
|
||||
}, showLabel && label)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user