> I actually suspect it won't be too hard to code. (Famous last words)
Famous last words indeed. I tracked it down, and I have to completely
take that back. Well, it would be easy - remove a comment - but it would
re-introduce an old bug.
Here's the affected chain:
* Starts at MIDIInstrumentParameterPanel
* To Instrument::setProgram
* To ControlBlock::instrumentChangedProgram
* To ControlBlock::makeChannelReady
* To StudioControl::sendChannelSetup
* To StudioControl::sendMappedEventList
* To RosegardenSequencer::processMappedEvent
* Puts the relevant events into m_asyncOutQueue
That all works. The problem is that m_asyncOutQueue is handled by
RosegardenSequencer::processAsynchronousEvents, which doesn't get called
while recording. SequencerThread::run only calls it while playing.
And that's more serious than it looks. We used to call
processAsynchronousEvents while recording, but removed it to fix Bug
#3542166. "This line can occasionally steal MIDI events that are needed
by processRecordedMidi()" And let me take a moment to thank whoever
commented Bug #3542166 so nicely in SequencerThread::run.
So having made it all the way to the outgoing queue, the event is blocked
from the hardware.
Michael had it right, "Holy crap, Batman". I do hate leaving regressions
unfixed, and if there's real demand for this, I could probably design
around the problem.
Tom Breton (Tehom)
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Rosegarden-user mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user