Performance

Raspberry Pi related support

Performance

Postby impeth » 10 Feb 2014, 10:05

Hello,

I have experienced the following during my first days of use with RuneAudio v0.2 on Rasperry Pi B:

1. When decoding files (e.g. FLAC) RuneAudio may experience some degradation to performance (pops, clicks, jumbs etc.)
2. The same files having been decoded in advanced to an uncompressed format (e.g. WAV or AIFF) do NOT have the same issues, they are being played back normally.
3. Intervention from RuneUI affects playback quality some times: Skipping track, creating list, making minor configuration changes and touching RuneUI in general, MAY affect RuneAudio playback performance (pops, clicks, jumbs etc.). I think it should be run in a lower priority mode. If you start playback of uncompressed 16/44 files and never touch the UI, you should normally experience no problem.
4. USB output (e.g. to a USB DAC) runs with less problem issues, it is generally better both in sound quality and in flawless performance.

Despite the above issues (which I think are because of the early adoption) I want to note that sound quality (especially of the RuneAudio kernel) is FANTASTIC and is compared to expensive hardware/software combinations.

I think that Rasperry Pi with RuneAudio is the cheapest high end audio transport!!!

Please make your best to solve the remaining performance issues. I hope in v0.3 at least some of them will be solved.

Many Thanks!
impeth
 
Posts: 7
Joined: 10 Feb 2014, 09:23

Re: Performance

Postby ACX » 10 Feb 2014, 14:29

Hi impeth, I'm glad that you appreciate our work :)

Do the points 1-3 refer to analog output? We had to put a "dirty fix" on that via UI because it's still buggy when skipping tracks, we count to completely fix it in the next release. USB output does not suffer to any of those troubles, at least to my knowledge.

About RuneUI, the next version will have a dramatically lower impact on the system and also on the clients. We are doing a huge backend and frontend rework, in which we already achieved big improvements in performance and usability.
User avatar
ACX
RuneAudio co-founder
 
Posts: 1692
Joined: 29 Nov 2013, 02:25
Location: Udine, Italy

Re: Performance

Postby impeth » 10 Feb 2014, 14:47

Hello ACX,

Points 1 to 3 are also valid for USB output when playback encoded (e.g. FLAC) files.
The same file played decoded (I have tried AIFF) has no issues
I do appreciate your work a lot & wait for the next release!!!

Thank you...
impeth
 
Posts: 7
Joined: 10 Feb 2014, 09:23

Re: Performance

Postby ACX » 10 Feb 2014, 18:51

That would suggest a load problem (an encoded file takes more CPU resources than an unencoded one), but the average load on the system is very low, even when playing FLAC files. Moreover, I expect the playback of a uncompressed (and bigger) file to be more problematic than a compressed one on the Raspberry Pi when played from a NAS, because of its shared USB/Eth bus bandwidth limits. Are you playing from a network mount?
I have to ask you more information, can you please submit a detailed debug report as described here?
User avatar
ACX
RuneAudio co-founder
 
Posts: 1692
Joined: 29 Nov 2013, 02:25
Location: Udine, Italy

Re: Performance

Postby impeth » 11 Feb 2014, 00:58

Hello again,

I was playing the files through a USB stick at a USB DAC. May be this was worse than playing from a NAS?
Or due to the shared USB/Eth bus is almost the same?
I attach also the requested debug report:

Code: Select all
###### System info ######
Linux version 3.6.11-18-ARCH+ (nobody@) (gcc version 4.7.2 (GCC) ) #1 PREEMPT Mon Oct 21 01:15:42 CDT 2013

system load: 0.04 0.07 0.06 2/88 1351

HW platform: RaspberryPi (01)

playerID: 014a41c884fe17e02b4996e22451aec509


###### Audio backend ######
Advanced Linux Sound Architecture Driver Version 1.0.25.

Card list: (/proc/asound/cards)
--------------------------------------------------
0 [DAC            ]: USB-Audio - USB Audio DAC
                      Burr-Brown from TI USB Audio DAC at usb-bcm2708_usb-1.3, full speed
1 [ALSA           ]: BRCM bcm2835 ALSbcm2835 ALSA - bcm2835 ALSA
                      bcm2835 ALSA

ALSA interface #0: (/proc/asound/card0/pcm0p/info)
--------------------------------------------------
card: 0
device: 0
subdevice: 0
stream: PLAYBACK
id: USB Audio
name: USB Audio
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 0

ALSA interface #1: (/proc/asound/card1/pcm0p/info)
--------------------------------------------------
card: 1
device: 0
subdevice: 0
stream: PLAYBACK
id: bcm2835 ALSA
name: bcm2835 ALSA
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 8
subdevices_avail: 8

interface #0 stream status: (/proc/asound/card0/stream0)
--------------------------------------------------------
Burr-Brown from TI USB Audio DAC at usb-bcm2708_usb-1.3, full speed : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 1
    Packet Size = 192
    Momentary freq = 44100 Hz (0x2c.199a)
  Interface 1
    Altset 1
    Format: S16_LE
    Channels: 2
    Endpoint: 2 OUT (ADAPTIVE)
    Rates: 32000, 44100, 48000
  Interface 1
    Altset 2
    Format: S16_LE
    Channels: 1
    Endpoint: 2 OUT (ADAPTIVE)
    Rates: 32000, 44100, 48000

interface #1 stream status: (/proc/asound/card1/stream0)
--------------------------------------------------------
no stream present


###### Kernel module snd_usb_audio settings ######

Module = "snd_usb_audio"

  Attributes:
    coresize            = "104025"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "1"
    srcversion          = "DA9A78F56D873AB02CB47F0"
    taint               = ""
    uevent              =

  Parameters:
    async_unlink        = "Y"
    device_setup        = "0,0,0,0,0,0,0,0"
    enable              = "Y,Y,Y,Y,Y,Y,Y,Y"
    id                  = "(null),(null),(null),(null),(null),(null),(null),(null)"
    ignore_ctl_error    = "N"
    index               = "0,-1,-1,-1,-1,-1,-1,-1"
    nrpacks             = "3"
    pid                 = "-1,-1,-1,-1,-1,-1,-1,-1"
    vid                 = "-1,-1,-1,-1,-1,-1,-1,-1"

  Sections:
    .ARM.exidx.exit.text= "0xbf149d2c"
    .ARM.exidx.init.text= "0xbf149d24"
    .ARM.exidx          = "0xbf14c144"
    .ARM.extab          = "0xbf14c0d8"
    .ARM.extab.init.text= "0xbf149d18"
    .bss                = "0xbf14fb2c"
    .data               = "0xbf14c5f0"
    .exit.text          = "0xbf148534"
    .gnu.linkonce.this_module= "0xbf14f9c4"
    .init.text          = "0xbf158000"
    .note.gnu.build-id  = "0xbf14c5cc"
    .rodata             = "0xbf148540"
    .rodata.str1.4      = "0xbf149dc4"
    .strtab             = "0xbf15cec8"
    .symtab             = "0xbf158048"
    .text               = "0xbf13d000"
    __param             = "0xbf149d34"


###### Kernel optimization parameters ######

hardware platform: RaspberryPi
current orionprofile: RuneAudio

kernel scheduler for mmcblk0: [noop] deadline cfq
/proc/sys/vm/swappiness: 0
/proc/sys/kernel/sched_latency_ns: 1500000


###### Filesystem mounts ######

rootfs / rootfs rw 0 0
/dev/root / ext4 rw,noatime,nouser_xattr,errors=remount-ro,data=ordered 0 0
devtmpfs /dev devtmpfs rw,relatime,size=84748k,nr_inodes=21187,mode=755 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=30,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /sys/fs/cgroup tmpfs rw,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_prio 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
tmpfs /run tmpfs rw,nosuid,nodev,mode=755 0 0
Ramdisk /run/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=262144k 0 0
tmpfs /tmp tmpfs rw 0 0
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
/dev/mmcblk0p1 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /tmp tmpfs rw 0 0
/dev/root /var/tmp ext4 rw,noatime,nouser_xattr,errors=remount-ro,data=ordered 0 0
/dev/sda1 /mnt/MPD/USB/KINGSTON vfat ro,nosuid,nodev,noexec,noatime,uid=45,gid=45,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,shortname=mixed,errors=remount-ro 0 0


###### mpd.conf ######

###################################
# Auto generated mpd.conf file
# please DO NOT edit it manually!
# Use RuneUI MPD config section
###################################

follow_outside_symlinks "yes"
follow_inside_symlinks "yes"
db_file "/var/lib/mpd/mpd.db"
log_file "/var/log/runeaudio/mpd.log"
pid_file "/var/run/mpd/pid"
music_directory "/mnt/MPD"
playlist_directory "/var/lib/mpd/playlists"
state_file "/var/lib/mpd/mpdstate"
user "mpd"
bind_to_address "any"
port "6600"
log_level "default"
zeroconf_enabled "yes"
zeroconf_name "runeaudio"
volume_normalization "no"
audio_buffer_size "2048"
buffer_before_play "20%"
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
gapless_mp3_playback "yes"
auto_update "no"
mixer_type "disabled"
group "audio"
max_connections "20"

decoder {
plugin "ffmpeg"
enabled "no"
}

input {
plugin "curl"
}

audio_output {
enabled "no"
type "alsa"
name "USB-Audio"
device "hw:0,0"
dsd_usb "yes"
}

audio_output {
enabled "no"
type "null"
name "Null"
}

audio_output {
enabled "yes"
type "alsa"
device "hw:1,0"
name "AnalogJack/HDMI"
}




###### PHP backend ######

php version: 5.5
debug level: 2


###### SESSION ######

STATUS: 1
ID: q4rkf6s3vsuof0rtuuaiahhkn0
SAVE PATH: /run


###### SESSION DATA ######

Array
(
    [orionprofile] => RuneAudio
    [cmediafix] => 0
    [playmod] => 0
    [ramplay] => 0
    [sessionid] => q4rkf6s3vsuof0rtuuaiahhkn0
    [mpdconfhash] => 7c34246c085d42daa92ff26729aa79b1
    [lastfm_apikey] => ba8ad00468a50732a3860832eaed0882
    [netconfhash] => 643f8967af551f683b3cfd493950c550
    [mpdconf_advanced] => 0
    [netconf_advanced] => 0
    [dev] =>
    [sourceconfhash] => d41d8cd98f00b204e9800998ecf8427e
    [sourceconf_advanced] => 1
    [debug] => 2
    [hiddendebug] => 0
    [opcache] => 1
    [playerid] => 014a41c884fe17e02b4996e22451aec509
    [hwplatform] => RaspberryPi
    [hwplatformid] => 01
    [airplay] => 0
    [scrobbling_lastfm] => 0
    [scrobbling_librefm] => 0
    [scrobbling_jamendo] => 0
    [spotify] => 0
    [db_version] => 1.2
    [udevil] => 1
    [coverart] => 1
    [volume] => 0
    [ao] => 0
    [ntpserver] => ntp.inrim.it
    [hostname] => runeaudio
    [w_queue] =>
    [w_queueargs] =>
    [w_lock] => 0
    [w_active] => 0
    [w_jobID] =>
    [debugdata] =>
    [netconf] => Array
        (
            [eth0] => Array
                (
                    [ip] => 192.168.2.10
                )

        )

    [state] => play
    [notify] =>
)

Page created in 1.34023 seconds.
impeth
 
Posts: 7
Joined: 10 Feb 2014, 09:23

Re: Performance

Postby wcsuther » 14 Feb 2014, 21:52

I too am having occasional "clicks" with playback of ALAC files. It's not unuseable, but a bit annoying. I am coming from having used Logitech Squeezebox software on my pi, where I rarely, if ever had that problem. I tried overclocking my pi...it may have helped slightly..? I'm assuming this is just early stages of rune stuff, and it is much less frequesnt than it was on Volumio. If I can help by sending logs or whatever, I would be happy to.

Thanks for the work on this!

-Craig
wcsuther
 
Posts: 5
Joined: 14 Feb 2014, 21:48

Re: Performance

Postby wcsuther » 14 Feb 2014, 21:59

I should have mentioned that I am using USB (DAC) audio out. I have no problems with lower bit rate files.

-Craig
wcsuther
 
Posts: 5
Joined: 14 Feb 2014, 21:48

Re: Performance

Postby wcsuther » 21 Feb 2014, 15:59

I have fixed my performance issues with this added to /boot/cmdline.text parameters: dwc_otg.fiq_split_enable=0
wcsuther
 
Posts: 5
Joined: 14 Feb 2014, 21:48

Re: Performance

Postby impeth » 21 Feb 2014, 16:20

Hello Craig,

Can you please explain us what is this parameter for?
impeth
 
Posts: 7
Joined: 10 Feb 2014, 09:23

Re: Performance

Postby wcsuther » 22 Feb 2014, 16:57

I believe it forces the USB into 1.1 as described here: http://volumio.org/forum/fixes-for-common-usb-dac-problems-with-rpi-t328-10.html#p1438 This was a copy and paste fix on my part..I'm not too fluent with linux, etc.

-Craig
wcsuther
 
Posts: 5
Joined: 14 Feb 2014, 21:48

support RuneAudio Donate with PayPal

Next

Return to Raspberry Pi

Who is online

Users browsing this forum: Baidu [Spider] and 5 guests