Comments (21)
suspect the output thread is spinning faster than necessary - can you enable -d
output=sdebug to see what the log messages are?
Original comment by [email protected]
on 3 Jul 2013 at 9:06
from squeezelite.
[deleted comment]
from squeezelite.
I did now compile squeezelite from the sources, but I still see the same effect.
Attached you will find two logfiles for two different audio outputs that I
generated using the binary download from
https://code.google.com/p/squeezelite/downloads/list running
./squeezelite-x86-64 -o sysdefault:CARD=PCH -n "cS.x121e" -d output=sdebug -f
debug1.log
and
./squeezelite-x86-64 -o default -n "cS.x121e" -d output=sdebug -f debug2.log
As you will see from the logfiles I did start and stop the playback using the
Squeezbox Server interface a couple of times.
Thank you for this great program!
Original comment by [email protected]
on 3 Jul 2013 at 9:40
Attachments:
from squeezelite.
Looks like at least one of those cases is doing sample rate conversion in the
alsa layer. Could you try with hw:CARD=PCH as the output? Does this work at
the rate of your source files?
Original comment by [email protected]
on 3 Jul 2013 at 9:48
from squeezelite.
./squeezelite-x86-64 -o hw:CARD=PCH -n "cS.x121e" -d output=sdebug -f debug3.log
gave me the log file that I attached. The file that I played back was a 44100Hz
FLAC file.
I was just wondering why the output thread has to do something even when there
is silence.
Original comment by [email protected]
on 3 Jul 2013 at 10:26
Attachments:
from squeezelite.
Squeezelite sends silence to the output device when not playing anything - this
prevents clicks and pops opening and closing the device. So I would expect to
see the cpu load from the output thread to be constant - however 10% is a high
value - what is the processor - is it always resampling?
Original comment by [email protected]
on 4 Jul 2013 at 8:12
from squeezelite.
The processor is just a slow AMD E-350. Again, I was not trying to tell you
about the 10%, but about the fact that the load does not change when paused.
E.g. I am thinking about running squeezelite on a 24/7 machine, that acts as
XBMC and squeezebox machine. However I want it to almost idle when not used,
and squeezelite should not steal power from XMBC when not used at all.
Thank you very much for looking into my comment in such detail!
Original comment by [email protected]
on 8 Jul 2013 at 7:04
from squeezelite.
If you make the alsa buffer values bigger eg "-a 200" then it may reduce the
cpu load in the output thread as it will wake less often. However it will
still keep the output device open and send silence to it, so will still needs
some cpu (normally this registers as very little)
Original comment by [email protected]
on 8 Jul 2013 at 8:55
from squeezelite.
I had the same issue on a MK802 arm device running linaro while sending the
output to hw or plughw. After re-routing the output to dmix, the cpu usage went
down to below 5%.
Original comment by [email protected]
on 21 Aug 2013 at 3:01
from squeezelite.
I had similar issue running on raspberry pi, squeezeplug version 6 (raspbian
hard float). While paused squeezelite uses ~20% CPU usage. I've tried with both
0.98 shipped with squeezeplug dist and latest 1.3 version of squeezelite.
Setting output to dmix seems to solve the issue (-o dmix). CPU usage is ~2-3%
with dmix.
Turning the player off always drops CPU usage down to 0-1%.
Original comment by [email protected]
on 7 Oct 2013 at 9:50
from squeezelite.
DMIX output worked for me, but it resulted in a playback that was too fast on
an armhf platform similar to the raspberry pi. After much testing, I found that
some cheap USB based sound cards have a chipset.
For example, the following device (lsusb) was playing too fast on dmix
0c76:1607 JMTek, LLC. audio controller
while the following didn't and is playing perfectly well
0d8c:000e C-Media Electronics, Inc. Audio Adapter (Planet UP-100, Genius G-Talk)
Original comment by [email protected]
on 23 Oct 2013 at 8:26
from squeezelite.
If using dmix results in playback that is too fast, using option '-u hLX'
resamples the audio to the highest rate supported by the card, and still yields
much lower CPU usage than sending the audio through pulseaudio.
It seems that upsampling with option -u isn't supported on some of the arm or
mips binaries though. But if option -u does work, IMO it's a cleaner fix to
have squeezelite resample than it is to get LMS or ALSA to do it.
Original comment by [email protected]
on 25 Oct 2013 at 5:15
from squeezelite.
I could not try -u hLX option as the available squeezelite binary for armhf
only has the following options enabled: LINUX ALSA EVENTFD.
Since I could not file libsox for that architecture, I can't compile it
myself...
There was an arm version of libsox in the following thread
http://forums.slimdevices.com/showthread.php?97046-Announce-Squeezelite-a-small-
headless-squeezeplay-emulator-for-linux-(alsa-only)&p=752342&viewfull=1#post7523
42
but trying to install it resulted in the following error
dpkg: error processing libsoxr0_0.1.1-1_i386.deb (--install):
package architecture (i386) does not match system (armhf)
dpkg: error processing libsoxr-dev_0.1.1-1_i386.deb (--install):
package architecture (i386) does not match system (armhf)
dpkg: error processing libsoxr-lsr0_0.1.1-1_i386.deb (--install):
package architecture (i386) does not match system (armhf)
Errors were encountered while processing:
libsoxr0_0.1.1-1_i386.deb
libsoxr-dev_0.1.1-1_i386.deb
libsoxr-lsr0_0.1.1-1_i386.deb
I am running this squeezelite on the following release
sudo cat *-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.10
DISTRIB_CODENAME=quantal
DISTRIB_DESCRIPTION="Ubuntu 12.10"
NAME="Ubuntu"
VERSION="12.10, Quantal Quetzal"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu quantal (12.10)"
VERSION_ID="12.10"
Original comment by [email protected]
on 27 Oct 2013 at 8:49
from squeezelite.
I tried also to get around the high idle cpu load (plug is different to dmix
and is different to route).
But I wasn't able to use dmix, because I'm using a 7.1 usb-soundcard and split
it to separate channels using the pcm type plug.
Like this: pcm.sound_usb -> dmix -> softvol -> plug -> route
Output plug: idle is about 12%, playing is not much more.
Output route: idle is 4%, playing is 7%
Output dmix: idle is only 0-1%
Original comment by [email protected]
on 24 Nov 2013 at 1:28
from squeezelite.
Hi again...
I found a solution for my high cpu idle usage from this night.
I noticed now, the playback speed was too high (and also pitch). I checked the
asound.conf and I saw, I used a rate of 48000. After changing it to 44100 the
playback speed was normal and the cpu load is the same as using route.
So now it is: pcm.sound_usb -> dmix -> softvol -> plug
Output route: idle is 4-5%, playing is 8% (each instance; even if 4 players in
sync)
Original comment by [email protected]
on 24 Nov 2013 at 5:14
from squeezelite.
Tobi, you're awesome!
I just changed the default rate in /usr/share/alsa/alsa.conf to 44100 and now
dmix has the right pitch and the CPU usage is back to 4% on my little RK3066
arm processor when idle, even on a cheap dongle. This solution is very good
timing as I just received a $15 usb card with SPDIF output that I was planning
on using, and it was also causing high CPU.
I hope this helps others having the same issue!
Thanks!
Original comment by [email protected]
on 4 Dec 2013 at 9:03
from squeezelite.
Closing as this issue appears to be related to cpu caused by resampling in the
alsa layer. The latest 1.4 beta version will give more resampling option if
libsoxr is installed, but otherwise it is important to make sure that you alsa
configuration doesn't resample all the time on low performance machines as
squeezelite will send audio silence all the time it is running.
Original comment by [email protected]
on 23 Dec 2013 at 10:47
- Changed state: WontFix
from squeezelite.
Tobi,
Could you post your asound.conf file? I am trying to do the exact same thing
with splitting an 8 channel sound card into 4 stereo streams. It works fine,
except for the high CPU use.
I'm not quite sure how to accomplish this: pcm.sound_usb -> dmix -> softvol ->
plug
Any help would be greatly appreciated!
Original comment by [email protected]
on 29 Sep 2014 at 7:51
from squeezelite.
Hey, here`s my asound.conf
Note: Perhaps there is some unseless stuff, but it works :-)
------------------------------------------
pcm.sound_internal {
type hw
card 0
device 0
}
ctl.sound_internal {
type hw
card 0
device 0
}
pcm.sound_usb {
type hw
card 1
device 0
}
ctl.sound_usb {
type hw
card 1
device 0
}
pcm.dmixer {
type dmix
ipc_key 1024
ipc_perm 0666
slave.pcm "sound_usb"
slave {
period_time 0
period_size 1024
buffer_size 4096
# rate 96000
# rate 48000 #was with the use of mpd
rate 44100 #low cpu-load with squeezelite
channels 8
}
bindings {
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
}
}
################################################
# Hier kommen die Software-Mixer (Room Volume) #
################################################
pcm.softvol_room1 {
type softvol
slave.pcm "dmixer"
control {
name "Diele"
card 1
}
}
pcm.softvol_room2 {
type softvol
slave.pcm "dmixer"
control {
name "WC"
card 1
}
}
pcm.softvol_room3 {
type softvol
slave.pcm "dmixer"
control {
name "Bad"
card 1
}
}
pcm.softvol_room4 {
type softvol
slave.pcm "dmixer"
control {
name "Wohnzimmer"
card 1
}
}
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.stereo1 {
type plug
slave {
pcm "dmixer"
channels 8
}
ttable.0.0 1
ttable.1.1 1
}
pcm.stereo2 {
type plug
slave {
pcm "dmixer"
channels 8
}
ttable.0.2 1
ttable.1.3 1
}
pcm.stereo3 {
type plug
slave {
pcm "dmixer"
channels 8
}
ttable.0.4 1
ttable.1.5 1
}
pcm.stereo4 {
type plug
slave {
pcm "dmixer"
channels 8
}
ttable.0.6 1
ttable.1.7 1
}
### My Setup for Mulirooming
#Diele - room1 - GREEN (Front) MONO - left channel
#WC - room2 - GREEN (Front) MONO - right channel
#Bad - room3 - BLACK (Surround) STEREO
#Wohnzimmer - room4 - YELLOW (Bass/Center) STEREO
#Diele
pcm.room1 {
type plug
slave {
###pcm "dmixer"
pcm "softvol_room1"
channels 8
}
ttable.0.0 1 #front left --> left 100%
ttable.1.0 1 #front right --> left 100%
}
#WC
pcm.room2 {
type plug
slave {
###pcm "dmixer"
pcm "softvol_room2"
channels 8
}
ttable.0.1 1 #front left --> right 100%
ttable.1.1 1 #front right --> right 100%
}
#Bad
pcm.room3 {
type plug
slave {
###pcm "dmixer"
pcm "softvol_room3"
channels 8
}
ttable.0.6 1 #surround left --> left 100%
ttable.1.7 1 #surround right --> right 100%
}
#Wohnzimmer
pcm.room4 {
type plug
slave {
###pcm "dmixer"
pcm "softvol_room4"
channels 8
}
ttable.0.2 1 #center --> left 100%
ttable.1.3 1 #bass --> right 100%
}
pcm.dmixer_internal {
type dmix
ipc_key 1024
ipc_perm 0666
slave.pcm "sound_internal"
slave {
period_time 0
period_size 1024
buffer_size 4096
rate 96000
channels 2
}
bindings {
0 0
1 1
# 2 2
# 3 3
# 4 4
# 5 5
# 6 6
# 7 7
}
}
pcm.internal {
type plug
slave {
pcm "dmixer_internal"
channels 2
}
ttable.0.1 1 #front left --> right 100%
ttable.1.1 1 #front right --> right 100%
}
Original comment by [email protected]
on 2 Oct 2014 at 5:29
from squeezelite.
[deleted comment]
from squeezelite.
Awesome, thanks!
Original comment by [email protected]
on 4 Oct 2014 at 7:20
from squeezelite.
Related Issues (20)
- Synced squeezelite pauses every 35 seconds HOT 1
- OS X - squeezelite asks always for firewall password
- Squeezelite disconnects from mysb.com
- Incorrect sample rate for shoutcast stations combined with resampling and pipe out = wrong playout speed HOT 1
- Core dumped
- A bug in dynamic library loading (Linux version)
- Crackle on DSD files HOT 4
- Feature Request - Power on and off on LMS to toggle GPIO pin on raspberry
- Raspberry Pi: Distorted sound in random intervals for some seconds HOT 11
- Static build forRaspberry/OpenELEC 5 possible? HOT 2
- Squeezelite sound output stops after a few hours on Armv5 Pogoplug with Arch HOT 5
- ignore some files in the tree HOT 1
- [PATCH] fedora: need ffmpeg include path HOT 2
- Does squeezelite blocks raspberrypi gpios?
- Squeezelite Win
- Build an RPM package
- Squeezelite v1.8 not working on 4 channel iec958 interface HOT 1
- patches to build on musl libc
- Build number from the main download files - 1.7 or 1.8
- Squeezelite Armv6hf will not pause when sending power 0 command through nc HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from squeezelite.