[nSLUG] Audio playback in Rosegarden on ubuntu lucid
nslug at fop.ns.ca
Wed Sep 7 11:47:48 ADT 2011
On Wed, 7 Sep 2011, Ryan Neily wrote:
> To install and run Rosegarden requires jackd.
> I installed and got jackd running with the assistance of readily found
> Rosegarden worked fine except it would not play back the sound.
> Definitely an obstacle to happiness.
Ubuntu has pulseaudio installed by default, did you take care of that
first? You may need to remove it and reconfigure all sorts of odds and
ends to cope with that. My guess is jackd is trying to output to a sound
card that is held open by pulseaudio.
> Fire up Synaptic and install a realtime kernel. Rosegarden requires a
> default 1000HZ setting instead of the now default 250HZ to be fast
> enough to process a midi file. The pre-emptive RT kernel is set to the
> required 1000HZ.
Just curious, what processing of a midi file requires 1000HZ? I remember
playing midis on my AWE32 on a 486 without any issue at all.
You might also want to tinker with /proc/sys/kernel/sched*ns to alter the
latency to boost foreground processes, depending on your workload. I have
a bug I've been trying to isolate for a while that causes video skips in
mplayer (audio plays fine, oddly); winching the ns down by orders of
magnitude makes a vast improvement.
Tuning the readahead with blockdev made a difference for me as well. The
default is 256k which is excessively small for most devices these days,
considering the mplayer cache is by default 8 meg. I found a hot spot on
my system going from filesystem -> LVM -> RAID1 -> disk where almost every
request was going through in 256k chunks. Ramping them up to 2 meg made a
big difference in the number of accesses (and thus context switches), and
I set the RAID1 and disk readahead caches to 4 meg.
> The above script starts by killing off all the apps in the chain so as
> to have a clean slate. Jackd has to be finished firing up and listening
> when Timidity starts for example. The parameters need to be set. -iA
> ( Input alsa ) -B2,8 (2 channels 8 bit) -Oj (output jackd). With the
> supporting applications running it is time to open Rosegarden.
You might want to use ionice, schedtool and renice to boost the IO
priority, CPU priority and process priority to start apps, or change them
on the fly as desired.
More information about the nSLUG