From: Chris C. <ca...@al...> - 2003-12-19 12:19:06
|
On Thursday 18 Dec 2003 5:07 pm, Chris Cannam wrote: > On Thursday 18 Dec 2003 10:21 am, Chris Cannam wrote: > > Today I'm working on doing MIDI thru/filters at the sequencer and > > on improving recording performance. > > Generally done, although I need to do a bit more testing in heavy > load on the slow machine and see how it holds up. Not well, so I did a bit more work on it. I've got rid of the DCOP sends to get events back to the GUI, replacing them with a mmapped ring buffer. With a bit more work on the sequencer main loop, I can now record as I play on the laptop and I can't get the timing to go wrong at all. The GUI has real trouble keeping up, but it doesn't cause any problems for the sequencer. Some remaining troubles (or new troubles caused by this work): * There is one remaining set of DCOP calls during record/playback, and that's for audio monitoring. At the moment playing or recording audio will still generate a flurry of DCOP and generally screw things up if the GUI's bogging down. We need to get the levels into the sequencer mapper really. * Relatedly, I realise that by cleverly sending the absolute minimum of pitch information back to the GUI for transport monitoring during playback, I've also thrown away all the information we were using for the track level meters. Doh. So perhaps we should combine this and the previous point and have a nice array of levels-per-track in the sequencer mapper that we just keep updated as we go along. * The sequencer mapper code is getting grottier -- it's still a proof of concept masquerading as something more. It should be reorganised like the control block mmapper, with a separate class to hold the data that the sequencer instantiates and writes and the GUI just creates with a placement new. Anyway, I don't have time today to do any more on this. So if anyone else does, feel free. Chris |