I'm trying to get rid of drop outs I get with an ODroid-U3 running Debian Jessie for ODroid and Pd-0.46-0 with a Focusrite Scarlett 2i4.
I've set real time priority, pulseaudio is disabled (I think), I'm renicing Pd with "sudo renice -10 $(pidof pd)" but I still get drop outs (even without the GUI). The sound card is USB class compliant so it could work...
Can anyone help?
-
ODroid and Pd - anyone uses it and has nice sound without drop outs?
-
Hi,
do you use a realtime kernel ? Sorry, but I don't know if it's possible do do the renice and so on without getting error messages on a non realtime kernel.
Do you use Jack ? I'm running pd-extended on a cubieboard2 and I use a peculiar version of jack provided on a given PPA by someone who said in a blog that jack had to be patched in order to work properly (he mentionned a "bus error") on cubieboard (or presumably on other arm devices ?) : http://www.cubieforums.com/index.php/topic,958.msg5885.html?PHPSESSID=q2sopsosa3rbd7h0j04br8cn47#msg5885
Who knows if the same applies to you, so the question is "is your jack version suitable ?".
Sorry, maybe I'm completely offf-topic.
Nau
-
Yop,
I never used nice, but rather set rtpriorities using a command like "chrt -f -p 75 $(pidof pd)". It's easy to test, I guess you know how to choose the priority...
Nau
-
@nau I'm not using Jack, though yesterday I installed it and I want to set real time to it so I can test it. I've been using it with ALSA following a thread on Pd's list. Some posts from Dan Wilcox suggested using ALSA only.
To be honest, I don't know if the kernel is a realtime one. How can I tell?
Also, I never saw the command you're mentioning ("chrt -f -p 75 $(pidof pd)"). Also, I don't really know how to choose the priority. All the stuff I'm trying out is stuff I've read here and there...also my Linux knowledge is rather limited (one could say, my computer knowledge in general..).
I'll check your link though, thanks. -
Hi Alexandros,
you can tape "uname -r" to get the kernel release of your distro, and see if there's is a "realtime" in it.
However today I read some stuff on jackaudio.org where they're saying that a realtime kernel isn't really needed in many situations, but my personal experience with wheezy or ubuntu says that realtime scheduling was crucial. The interesting thing is that I learned from these readings that you don't need a rt kernel to do rt-scheduling.Usually I set jack priority to 80, "place" the rtpriorities of important applications slightly below it (that's why you saw a 75 in my first post), and set other less important applications's rtprio under all important ones.
Example :
If I type "cat /proc/asound/cards" I get the irq of my usb soundcard which is 17.
Then I type "ps -eLo rtprio,cls,pid,pri,nice,cmd | grep "FF" | sort -r" and it gives me an ordered list that could be used to see how rtpriorities are set. The souncard "belongs to" the rtc timer, so its rtpriority must be lower. Here's a portion of the result on my setup :99 FF 3 139 - [migration/0] 99 FF 17 139 - [posixcputmr/1] 99 FF 16 139 - [migration/1] 99 FF 14 139 - [posixcputmr/0] 90 FF 81 130 - [irq/8-rtc0] 85 FF 72 125 - [irq/16-uhci_hcd] 85 FF 71 125 - [irq/17-ehci_hcd] 84 FF 75 124 - [irq/16-uhci_hcd] 84 FF 74 124 - [irq/18-uhci_hcd] 84 FF 70 124 - [irq/23-ehci_hcd] 83 FF 77 123 - [irq/16-uhci_hcd] 83 FF 73 123 - [irq/19-uhci_hcd] 82 FF 76 122 - [irq/19-uhci_hcd] 80 FF 1947 120 - /usr/bin/jackdbus auto 75 FF 80 115 - [irq/1-i8042] 75 FF 2845 115 - /usr/bin/pdextended 75 FF 1949 115 - /usr/bin/a2jmidid dbus 74 FF 79 114 - [irq/12-i8042] 50 FF 685 90 - [irq/7-parport0] 50 FF 675 90 - [irq/16-nouveau] 50 FF 66 90 - [irq/15-ata_piix] 50 FF 65 90 - [irq/14-ata_piix] 50 FF 45 90 - [irq/9-acpi] 50 FF 308 90 - [irq/6-floppy] 50 FF 279 90 - [irq/21-ohci1394] 50 FF 2292 90 - [irq/17-Intel IC] 50 FF 2277 90 - [irq/10-MPU401 U] 50 FF 1264 90 - [irq/20-eth0] ...
You can see that the rtprio of rtc is 90, the rtprio of the usb port used by my soundcard is 85. Jackd comes later with a rtprio set to 80, and pd-extended is run with a rtprio of 75 (using "chrt -f -p 75 $(pidof pdextended)", for instance.
The video driver here is "nouveau", and its rtprio is 50, lower than pd's 75. Same thing with "eth0". On my setup, pd-extended has a rtprio of 10 when I don't change it manually, so it is far below the video driver, or the network adpater, hence the clics and pops!But...wait. Do you have such audio problems with other applications ?
I think that jack should work fine with n=3 and p=128 settings with your setup.
Nau
-
@nau "uname -r" gives me this:
3.8.13.7
but using jack seems to solve the problem. I launched Qjackctl and set it up and then launched Pd with the -jack flag and got no drop out!
Anyway, thanks a lot for your tips, they might be useful at some point.cheers
-
Hi,
happy to hear good news.
My interest for rt scheduling started with 2.6 kernels. I read many times that for kernels above 3 many of these "tweaks" are built in. Cheers!
Nau