From: Jim C. <m_...@bu...> - 2012-12-23 02:23:22
|
I've encountered (what I'd classify as) a major bug, which I suspect is in rosegarden rather than another component (such as ALSA) that RG uses. Has anyone else come across this problem (I don't think I've seen it reported)? - When I record (hit the red button in RG) and start playing my external MIDI keyboard/controller (coming into RG via my sound card), rosegarden, via its MIDI through facility, sends the events from my keypresses to my external synthesizer, which produces the expected notes in response to the keypresses. However, after playing for somewhere between 5 and 10 minutes a glitch occurs such that, often, when I play sustained chords[1], I hear the attack but the sound immediately ceases and then continues again a fraction (I'd say 1/4 to 1/2 a second) of a second later - sort of an echo effect. It sounds like (although I haven't verified this is what happens) a note on is sent to the synth for each key pressed, then a note off for each key immediately after that, then a note on again, until I release the keys, and a note off is sent - again for each key. In case it's not clear, the MIDI controller sends MIDI in to the soundcard, which sends MIDI in to rosegarden, which sends MIDI out to the soundcard, which sends MIDI out to my synth: controller -> soundcard -> RG synth <- soundcard <- RG I'm running, according to "svn info", revision 13165, which I compiled on Dec 16. I'm pretty sure I've come across this bug before (in the last year or so), but I'm not clear on how long or what revisions I was using. (I don't think it was present, say, two or more years ago.) I've noticed in the last couple days (having found some time to play with RG) that the problem is pretty reproducible - at least so far, 3 or 4 times in a row playing for several minutes, it has occurred each time. I tried it once just playing without recording (with RG routing through to the synth) for about 10 minutes and the problem didn't occur; so it appears to only occur when actually recording - though I think I'd need to try this a couple more times for it to be conclusive enough. Also, thinking that the problem might have been caused by my system being too heavily loaded with running processes (using CPU and memory), I rebooted and tried it with a relatively light load (for a 12GB machine, Core i7) and the problem still occurred. If anyone is able to look at this, let me know if you need more info on my system, setup, debugging output, etc. And if anyone is looking at this, you might be interested in this output that occurred a couple times when the problem occurred (though not the last time, which leads me to think that maybe it's not connected to the problem after all): WARNING: SegmentNotationHelper::makeNoteViable(): No valid split for event of duration 1822 at 26880 (split duration 1920), ignoring remainder WARNING: This is probably a bug; fix required This type of message showed up in the output 7 times when I encountered the problem yesterday. [1] I believe the effect sometimes happens with a solo sustained keypress, but it's more prevalent when 2 or more notes are played at the same time. And, though I'm not sure, it seems to happen more often with notes that are struck hard (high velocity). Thanks. Jim |
From: Tom B. (Tehom) <te...@pa...> - 2012-12-31 19:42:52
|
> When I record (hit the red button in RG) and start playing my external > MIDI keyboard/controller (coming into RG via my sound card), > rosegarden, via its MIDI through facility, sends the events from my > keypresses to my external synthesizer, which produces the expected > notes in response to the keypresses. However, after playing for > somewhere between 5 and 10 minutes a glitch occurs such that, often, > when I play sustained chords[1], I hear the attack but the sound > immediately ceases and then continues again a fraction (I'd say 1/4 to > 1/2 a second) of a second later - sort of an echo effect. It sounds > like (although I haven't verified this is what happens) a note on is > sent to the synth for each key pressed, then a note off for each key > immediately after that, then a note on again, until I release the keys, > and a note off is sent - again for each key. Could it be that since we are now making noteoffs in mapping, that they somehow get mixed into the playthru? ISTM no: * Playthru doesn't go thru mapping, it goes no deeper than ControlBlock. * If that was it it should show up immediately, on the first note you played. To my mind, it resembles what we were seeing with the Beethoven Moonlight recording: sometimes input will outrace something we do in response. IIRC, Ted diagnosed the Beethoven bug as update events to segments taking too much time when segments get big. Seems like that could cause what you are seeing, Jim. If that's it, then it's a bit up in the air. We talked about somehow queueing events instead of updating all the time, but that's definitely not in 12.12 and I can't say whether or when that will happen. Tom Breton (Tehom) |
From: Tom B. (Tehom) <te...@pa...> - 2012-12-31 19:52:15
|
> > If that's it, then it's a bit up in the air. We talked about somehow > queueing events instead of updating all the time, but that's definitely > not in 12.12 and I can't say whether or when that will happen. I just looked at whether there was some room to skip certain updates (moveIteratorToTime) for segments that are being recorded. Bad news: we're essentially already doing that, so no real room for improvement there. Tom Breton (Tehom) |