For demo at the Expo, I was using the current CVS with the mmap
code.  MIDI playback generally worked pretty well, with a few
problems which I've filed as bugs.

However, it seems we now have a situation which mirrors the
original sequencer-can't-keep-up problem: the GUI can't always
keep up with playback.  Not only is it generally terribly slow
to respond when playback is happening, but if it gets busy for
a while it will actually fall behind in tracking playback and
never fully catch up again.  (This is on my fairly slow laptop,
of course.)  Further, as some others have reported, the same
thing happens when recording -- the events have to go through
the GUI for MIDI Thru and the fact that the GUI is so busy
means you can end up with a lag of multiple seconds in real
life.  (Of course that's a problem with the implementation of
MIDI Thru, but also a symptom of a problem with the GUI.)

Now I'm guessing that the problem is just that the GUI's being
swamped with DCOP setPointerPosition calls, which the sequencer
appears to be sending every 5ms (200 per sec! do I have this
right?) from its updateClocks() method.  Once upon a time this
would have been necessary to ensure the GUI had the right data
handy to feed to the sequencer, but presumably now the only
function of this setPointerPosition call is to update the user
feedback.  No?  If so, then it seems pointless to attempt more
than 50 or so updates per second, and one could presumably get
away with far fewer by permitting the GUI to interpolate
regularly, assuming it's cheaper for the GUI to drop down and
update its own pointers than it is for the sequencer to instruct
it via DCOP.

Another thing that might help would be to timestamp the
setPointerPosition call -- including the machine clock() as
well as the real-time-within-performance -- so that the GUI can
adjust the latter for any lag shown by the former.

Thoughts?  I don't mind messing about with some of this, if
others are prepared to tell me when I'm getting it wrong.


Chris



-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
_______________________________________________
Rosegarden-devel mailing list
[EMAIL PROTECTED] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to