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
