William Weston <weston(a)sysex.net> writes:
On Tue, 22 Sep 2009, Nedko Arnaudov wrote:
Nedko Arnaudov <nedko(a)arnaudov.name>
writes:
> I get "wrong" sound. JACK reports no xruns.
>
>
http://nedko.arnaudov.name/tmp/phasex.wav
Yup. I know the sound well, and hopefully now it's nothing more than
a memory. The broken ringbuffer read has been fixed, and now uses two
buffer periods instead of one. 0.12.0-pre1 should treat you right.
Some more info...
Switching tabs in my window manager (ion3) causes artefacts in phasex
sound. I run jack2 in realtime mode, dsp load is about 15%. I run
a 2.6.23.1-rt11 kernel. I run the opensource radeon driver. My audiocard
and rtc IRQ threads run at higher priority than JACK (82 and 98). JACK
runs at priority 80.
0.12.0-pre1 now defaults to SCHED_RR and should behave a little
better. I can run muse, hydrogen, and six instances of phasex on my
Turion laptop, clock it down to 1.6GHz, fire off a couple mprime
stress tester threads, and switch tabs to my heart's content without
hearing the "wrong" sound now. This has been tested both with and
without the opensource radeon drm. If you can, enable BackingStore in
the "Device" section of your xorg.conf so the knobs don't have to be
redrawn every tinme you switch tabs.
The clocks in my Turion really don't like the 2.6.23-rt or 2.6.24-rt
kernels, so all of this has been tested on 2.6.31-rt11. This is the
first kernel on this particular laptop that can give me drm, exa
acceleration, and backing store at the same time.
> # ps -eLo rtprio,pid,spid,class,args |sort -rn|head -n 20
> 99 4 4 FF [posix_cpu_timer]
> 99 3 3 FF [migration/0]
> 98 845 845 FF [IRQ-8]
> 97 5 5 FF [softirq-high/0]
> 82 1232 1232 FF [IRQ-20]
> 80 12779 22340 RR /usr/bin/jackdbus auto
> 80 12779 22338 RR /usr/bin/jackdbus auto
> 80 12779 22337 RR /usr/bin/jackdbus auto
> 77 22421 22424 FF phasex-01
> 75 22421 22427 RR phasex-01
> 75 22342 22355 RR /usr/bin/a2jmidid dbus
> 50 9 9 FF [softirq-block/0]
> 50 989 989 FF [IRQ-17]
> 50 921 921 FF [IRQ-16]
> 50 8 8 FF [softirq-net-rx/]
> 50 854 854 FF [IRQ-15]
> 50 851 851 FF [IRQ-14]
> 50 80 80 FF [IRQ-9]
> 50 7 7 FF [softirq-net-tx/]
> 50 6 6 FF [softirq-timer/0]
I fixed it by tweaking the thread priorities in phasex settings window.
midi_thread_priority = 70;
engine_thread_priority = 75;
Are you sure that it was caused by a ringbuffer problem?
It's been suggested in the past to put the
softirq-high threads at a
high priority (just under the rtc, like you have done), but I get
xruns whenever I put it above JACK. What kind of audio hardware and
clock hardware do you have? Just curious.
soundcard is emu10k1 (sblive value)
no idea about clock hardware
Give 0.12.0-pre1 a spin and let me know how it goes.
If there is JACK MIDI, there will be one thread less, right?
--
Nedko Arnaudov <GnuPG KeyID: DE1716B0>