During MIDI playback, Ngale draws the "next" page only if virtually none of that page is in view yet; if more than a tiny sliver of the page is already on the screen, it doesn't "turn the page". This seems to be backwards! That might have made sense 25 years ago when screens were much smaller and computers much slower, but now, Ngale should turn the page if more than a tiny sliver is not on the screen. This should just be a matter of changing the test; see code in MIDIPlay.cp>PlaySequence(). The variables pageTurnTOffset, tBeforeTurn, newPage have something to do with it, but scrolling is actually done in HiliteSyncRect() called from PlaySequence.
HiliteSyncRect() scrolls if and only if the Sync to be hilited isn't in view. Instead, it should probably scroll iff the Sync's entire page isn't in view.
During MIDI playback, Ngale draws the "next" page only if virtually none of that page is in view yet; if more than a tiny sliver of the page is already on the screen, it doesn't "turn the page". This seems to be backwards! That might have made sense 25 years ago when screens were much smaller and computers much slower, but now, Ngale should turn the page if more than a tiny sliver is not on the screen. This should just be a matter of changing the test; see code in MIDIPlay.cp>PlaySequence(). The variables pageTurnTOffset, tBeforeTurn, newPage have something to do with it, but scrolling is actually done in HiliteSyncRect() called from PlaySequence.