V45.6 fix solo Q3: bo stopAllPlayback+restart 60ms khi solo main-session (track solo giu nguyen tieng, het wobble re-attack); GIU timelinePitchesRef qua stop - kill branch NOTE_OFF tung pitch (Qin im khi solo track khac, truoc day tset=0); C++ allNotesOff sandbox VST2 qua control 7 (child panic local CC64/CC123+128 noteOff) thay 128 note-off flood queue 64-cap (Qin het treo sau STOP); IPC toggleSolo tu applyAllTrackMuteSolo (ref patch + kill); v=202608292138

This commit is contained in:
2026-08-29 21:39:59 +07:00
parent 72ae22f865
commit 945e63918d
12 changed files with 80 additions and 30 deletions
@@ -31,6 +31,15 @@ public:
virtual void programChange(uint32_t channel, uint32_t program) = 0;
virtual void pitchBend(uint32_t channel, uint32_t bend14) = 0;
// Flush every sounding note on the channel. Default: per-pitch
// note-off sweep (direct engines - no shared queue). Sandbox VST2
// overrides: a 128-note sweep would flood the child's 64-cap MIDI
// queue and drop the tail (Qin keeps ringing after STOP) - it
// sends one control event and the child panics locally instead.
virtual void allNotesOff(uint32_t channel) {
for (uint32_t n = 0; n < 128; ++n) noteOff(channel, n, 0);
}
// Open/close Native GUI window
virtual bool openGUI(void* parentWindowHandle) = 0;
// Headless engines (VST2 without an editor, SF2/SFZ): the bridge must