I've been experimenting with some success with proper audio scheduling
in CVS over the last couple of days.  A couple of worries regarding use
of std::vectors and the extra scheduler thread to iron out but mainly
successful - I've also incorporated a RingBuffer class which borrows code
from JACK's ringbuffer.c example.  A RingBuffer (for those that don't know)
is a fixed size buffer that can be written to whilst being read and so is
perfect for taking up the slack in reading audio from disk and writing it
out to the time critical JACK process loop.

As the debugging process continues a few things have popped up - notably
the lack of incorporation of any audio latency in the timing of Audio
MappedEvents - this would enable the RingBuffer (which operates on a per
audio file basis currently) to fill itself up before the first read req
comes along.

So to firstly fix the audio scheduling situation and also incorporate
other features that have slipped with mmapping (playback from the middle
of the audio sample, looping) and also tidy up the extant latency code in
the sequencer I've moved all the mmapped stuff into their own files.  So
a small structural change in the sequencer/ directory only really so far.
This work should tie in nicely with a) multiple audio record outs (should
be simple now to graft on recording to the scheduling thread for N audio
output files and hence work our way towards multiple "in" audio recording),
b) more stable audio multitracking out, c) improved looping for MIDI and
audio (currently pretty crappy) and d) JACK and other transport tie-in.
Of course for stuff like multiple audio recording there's still some GUI work
to be done so but it'll be nice to get this covered at the business end.

So, it sounds relatively straightforward and hunkydorey but maybe I'm just
trying to fool myself into believing I can get it all done superquick.

R


-------------------------------------------------------
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