We rely completely on ALSA for timer stuff. The key routine for setting the timer in RG is:

AlsaDriver::setCurrentTimer()

Unless there is a bug in there (which there may very well be, the ALSA documentation is incomplete and in many cases incorrect), the problems tend to be due to bugs in ALSA or the kernel. They usually get sorted over time by the ALSA folks. If they notice them. This one seems like an interesting combination of requirements to reproduce and thus might fly under their radar.

I recommend building the latest kernel and seeing if that fixes the issue. My three-year-old Debian/Ubuntu oriented notes are here if you need:

http://www.tedfelix.com/linux/kernel-build.html

  In general, it's really easy to do.

If it's still there, a bug report for the ALSA folks seems like the way to go. They can help find the issue in ALSA, or even in Rosegarden if that's where the problem is.

Ted.

On 2/11/23 4:42 AM, Will Godfrey wrote:
Recently I found Rosegarden was losing the timer source, and the transport was
freezing - sometimes for nearly a second after which it would send a bunch of
notes, then carry on as normal.

It was some time before I realised it only happened on my Ryzen 5 machine (the
one I use for music) and not on my office Intel one. I hadn't made any changes
to the system and got sidetracked into thinking maybe I'd somehow managed to
get infected with some malware. However I eventually remembered I'd done a
normal devuan update. The only significant change was the Linux kernel V5.10 to
V 6.1. Rolling that back cured the problem.

Asking some questions on-line identified the problem.

First off, I use the RT-Preemt kernel - the 'normal' one doesn't have the issue
at all.

Secondly, the Ryzen has the AMD equivalent of hyper-threading, my older Intel
doesn't.

Finally, since Linux V5.12 the scheduler has been modified to allow dynamic
preemption. Disabling this in the BIOS cures the problem, albeit with a very
small loss of performance.

I wonder if there should be another look at how Rosegarden does it's timing. I
did try to set the timing source to the audio hardware. It seemed to recognise
it, but actually totally ignored it. Saving and reloading showed no time source
at all, yet still ran as if it was on System Timer.



_______________________________________________
Rosegarden-user mailing list
Rosegarden-user@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user

Reply via email to