From: Richard B. <bo...@bo...> - 2003-10-18 08:14:53
|
Been fiddling about with audio this week with some success and I/ew need to make some changes to the way mmapping works for audio segments. For a start we need to be able to insert partial audio events for audio segments that start before current playback position and extend through it - so we play partial audio files. Secondly we have a looping issue currently - it appears when we flyback to the first loop marker we take several copies of the events around the loop markers with us. In the audio case I was seeing 10+ audio events (hence 10 samples) playing instead of one - I hear the same with normal events. Thirdly we need to have advance warning of audio events at the sequencer so we can queue them up in the disk thread and have them ready to go when the sequencer needs to start spooling them out. I've tried some naieve methods of getting early warning (taking RealTimes off the current event time) but of course we're still looking at a "slice" of events at the getSlice() call. I'm thinking we need a new method to handle audio events for both this case and the first case (partial audio files). Fourthly (and this isn't to do with mmapped code as such) we need a better method of syncing the MIDI and audio together. Currently it's all a bit handwavey - use RealTimes and potential latency figures derived from JACK plus the one we inject into ALSA to cue them up together. However with JACK's frame clock we have a potentially hi resolution medium (not to mention the other sync methods) to tighten these up. I think at the moment we're also seeing some natural latency in audio playback because our audio events give no time to cue up and start spooling the audio data to the disk thread. R |