Home of the Squeezebox™ & Transporter® network music players.
Page 1 of 251 1231151101 ... LastLast
Results 1 to 10 of 2510
  1. #1
    Senior Member
    Join Date
    Apr 2005
    Posts
    8,279

    Announce: Squeezelite - a small headless squeezeplay emulator for linux (alsa only)

    Linux users may be interested in a small headless client I've been working on called Squeezelite. It's scope is constrained to offering a headless (Squeezeslave like) player which runs on linux desktops and potentially small linux devices using alsa for audio output.

    It should support the following:
    - headless playback
    - gapless, high res support, direct streaming support (works with my Spotify plugin)
    - flac, mp3 and pcm (wav/aiff), aac/mp4, ogg playback; flac/mp3/aac/ogg require libFLAC, libmad, libfaad, libvorbisfile/tremor to be separately installed
    - usb dacs with support for direct playback to the hardware device (supports S24_3LE output format)
    - sync
    - tunable buffer sizes
    - ability to disable codecs (if you like to only use wav, then only enable pcm other codecs will not be loaded)

    The code is opensource (GPLv3) and available here: http://code.google.com/p/squeezelite/

    To run:
    Code:
    ./squeezelite -? - lists options
    ./squeezelite -o hw:CARD=MDAC  - starts with alsa device: hw:CARD=MDAC used as the output (this is an example usb audio dac)
    Last edited by Triode; 2012-12-22 at 11:13.

  2. #2
    Senior Member Mnyb's Avatar
    Join Date
    Feb 2006
    Location
    Västerås Sweden
    Posts
    13,634

    Brilliant !

    Thanks Excellent

    Now I have a simple player for my desktop PC Linux Mint 13

    I put it in /opt used mint's GUI tool to add a startup app added this to the command -o default 192.168.1.50 (did not bother to open ports for auto discovery my server is fixed anyway )

    Many other options gave weird noises to the sound .

    This is not the hifi application you had in mind this goes trough the mixer and ads to rest and

    "default - Playback/recording through the PulseAudio sound server "

    You said Alsa only ,but it is fir for my purpose anyway , I don't "hifi listen" at my pc even if do use a pair of Adam A3X as speakers .

    Thanks anyway it works brilliantly as soon as the pc boots it starts to play ! if I did not pause it . and I have the web-UI or my iPad to control it .
    Ligthweigth and always there when the pc boots i don't have think about it and start a player .

    And it uses microscopical amount of resources
    --------------------------------------------------------------------
    Main hifi: Touch + CIA PS +MeridianG68J MeridianHD621 MeridianG98DH 2 x MeridianDSP5200 MeridianDSP5200HC 2 xMeridianDSP3100 +Rel Stadium 3 sub.
    Bedroom/Office: Boom
    Kitchen: Touch + powered Fostex PM0.4
    Misc use: Radio (with battery)
    iPad1 with iPengHD & SqueezePad
    (in storage SB3, reciever ,controller )
    server HP proliant micro server N36L with ClearOS Linux

    http://people.xiph.org/~xiphmont/demo/neil-young.html

  3. #3
    Senior Member
    Join Date
    Apr 2010
    Location
    Denmark
    Posts
    627

    Thank you

    Hi Triode

    Many thanks for this. It will be really usefull at some time.

    I tried it on a Debian system and was able to connect to it from LMS, and it could play MP3s and Flacs and radiostations from the internet.

    However, there were some problems:
    1. It would play fine for some time, and then the sound started to fluctuate rapidly for (10-20 sec) then playing fine again for 1-20 sec , then start to break up again and it continued to change like this. The fluctuations is very rapid it sounded very unpleasant but it is difficult to describe. (Something like stuttering - but still not quite the same)

    2. If I tried to start it with logging enabled like this:
    ./squeezelite -d=debug 192.168.1.19 SORRY SHOULD HAVE USED -d all=debug / results in next post
    I got this: Segmentation fault


    3. Regarding the different buffer sizes....... -a <time>:<count> Specify ALSA buffer_time and period_count what will be reasonable values?
    and also for -b <stream>:<output> Specify internal Stream and Output buffer sizes in Kbytes what will be reasonable values here?


    I will be happy to provide further info if needed

    Edit: It synchronizes fine with both a Duet and a Radio - and the stuttering has nothing to do with synchronization
    Last edited by sbp; 2012-11-03 at 08:35.
    piCorePlayer a small player for the Raspberry Pi in RAM.
    Homepage: https://sites.google.com/site/picoreplayer/home

    Please donate if you like the piCorePlayer

  4. #4
    Senior Member
    Join Date
    Apr 2005
    Posts
    8,279
    Thanks for trying some responses below:

    Quote Originally Posted by sbp View Post
    1. It would play fine for some time, and then the sound started to fluctuate rapidly for (10-20 sec) then playing fine again for 1-20 sec , then start to break up again and it continued to change like this. The fluctuations is very rapid it sounded very unpleasant but it is difficult to describe. (Something like stuttering - but still not quite the same)
    If the system is busy try running it as root, or allowing it to use the FIFO scheduler class (I can't remember what you need do for this, but root can by default). This will only be used for the output thread, but will make sure it can run even if the machine is busy. If its not this then happy to take some debugs..

    2. If I tried to start it with logging enabled like this:
    ./squeezelite -d=debug 192.168.1.19
    I got this: Segmentation fault
    The intended syntax is: -d all=debug (or stream=debug if you only want to see stream related logs at debug level). I'll fix the segfault.

    3. Regarding the different buffer sizes....... -a <time>:<count> Specify ALSA buffer_time and period_count what will be reasonable values?
    and also for -b <stream>:<output> Specify internal Stream and Output buffer sizes in Kbytes what will be reasonable values here?
    I would leave these at default unless you have a good reason to change, if you enable debugs for stream and output you will see how they change things.

  5. #5
    Senior Member
    Join Date
    Apr 2010
    Location
    Denmark
    Posts
    627
    OK here is the log file>

    root@debian:/# cd opt
    root@debian:/opt# cd squeezelite
    root@debian:/opt/squeezelite# ./squeezelite -d all=debug 192.168.1.19
    [15:25:30.615784] output_init:552 init output
    [15:25:30.616375] output_init:553 outputbuf size: 3528000
    [15:25:30.632021] output_init:567 output: default maxrate: 192000
    [15:25:30.632344] output_thread:287 open output device: default
    [15:25:30.638228] alsa_open:200 opened device default using format: S32_LE sample rate: 44100
    [15:25:30.638491] alsa_open:225 buffer time: 85328 period count: 4
    [15:25:30.648461] stream_init:205 init stream
    [15:25:30.648651] stream_init:206 streambuf size: 2097152
    [15:25:30.648870] decode_init:89 init decode
    [15:25:30.650087] load_flac:180 loaded libFLAC
    [15:25:30.650145] register_pcm:140 using pcm
    [15:25:30.650487] load_mad:186 loaded libmad
    [15:25:30.650936] slimproto:559 connecting to 192.168.1.19:3483
    [15:25:30.650985] slimproto:560 cap: MaxSampleRate=192000,flc,pcm,aif,mp3
    [15:25:30.651304] slimproto:573 connected
    [15:25:30.651342] sendHELO:135 mac: 00:90:dc:07:14:90
    [15:25:30.656634] process:330 strm
    [15:25:30.656695] process_strm:214 strm command q
    [15:25:30.698782] process:330 audg
    [15:25:30.698957] process_audg:304 audg gainL: 2048 gainR: 2048 fixed: 134566784
    [15:25:30.701209] process:330 strm
    [15:25:30.701350] process_strm:214 strm command s
    [15:25:30.701384] process_strm:271 strm s autostart: 0
    [15:25:30.701416] sendSTAT:174 STAT: STMf
    [15:25:30.701494] codec_open:116 codec open: 'f'
    [15:25:30.701743] stream_sock:258 connecting to 192.168.1.19:9000
    [15:25:30.702014] stream_sock:298 header: GET /stream.mp3?player=00:90:dc:07:14:90 HTTP/1.0


    [15:25:30.702062] sendSTAT:174 STAT: STMc
    [15:25:30.702141] process:330 audg
    [15:25:30.702174] process_audg:304 audg gainL: 2048 gainR: 2048 fixed: 134566784
    [15:25:30.703990] process:334 unhandled setd
    [15:25:30.704129] process:334 unhandled setd
    [15:25:30.704174] process:334 unhandled aude
    [15:25:30.704243] process:330 audg
    [15:25:30.704288] process_audg:304 audg gainL: 2048 gainR: 2048 fixed: 134566784
    [15:25:30.757908] stream_thread:142 headers: len: 109
    HTTP/1.0 200 OK
    Server: Squeezebox Server (7.6.2 - 33593)
    Connection: close
    Content-Type: audio/x-flac


    [15:25:30.758211] sendRESP:205 RESP
    [15:25:30.772615] sendSTAT:174 STAT: STMl
    [15:25:33.148795] process:330 strm
    [15:25:33.148947] process_strm:214 strm command u
    [15:25:33.148982] process_strm:259 unpause at: 3173687 now: 3173498
    [15:25:33.149017] sendSTAT:174 STAT: STMr
    [15:25:33.155143] write_cb:95 setting track_start
    [15:25:33.343830] output_thread:411 track start sample rate: 44100 replay_gain: 0
    [15:25:33.822506] sendSTAT:174 STAT: STMs
    [15:25:33.822753] sendSTAT:174 STAT: STMt
    [15:25:33.822808] process:330 strm
    [15:25:33.822895] process_strm:214 strm command t
    [15:25:33.822955] sendSTAT:174 STAT: STMt
    [15:25:34.160930] process:330 strm
    [15:25:34.161102] process_strm:214 strm command a
    [15:25:34.161137] process_strm:248 skip ahead interval: 16
    [15:25:34.175403] output_thread:351 skip 705 of 705 frames
    [15:25:35.162199] sendSTAT:174 STAT: STMt
    [15:25:36.163504] sendSTAT:174 STAT: STMt
    [15:25:37.164795] sendSTAT:174 STAT: STMt
    [15:25:37.821916] process:330 strm
    [15:25:37.822598] process_strm:214 strm command t
    [15:25:37.822640] sendSTAT:174 STAT: STMt
    [15:25:38.823780] sendSTAT:174 STAT: STMt
    [15:25:39.825065] sendSTAT:174 STAT: STMt
    [15:25:40.826403] sendSTAT:174 STAT: STMt
    [15:25:41.820617] process:330 strm
    [15:25:41.820785] process_strm:214 strm command t
    [15:25:41.820823] sendSTAT:174 STAT: STMt
    [15:25:42.821947] sendSTAT:174 STAT: STMt
    [15:25:43.823233] sendSTAT:174 STAT: STMt
    [15:25:44.824557] sendSTAT:174 STAT: STMt
    [15:25:45.819865] process:330 strm
    [15:25:45.820020] process_strm:214 strm command t
    [15:25:45.820057] sendSTAT:174 STAT: STMt
    [15:25:46.821199] sendSTAT:174 STAT: STMt
    [15:25:47.822491] sendSTAT:174 STAT: STMt
    [15:25:48.823765] sendSTAT:174 STAT: STMt
    [15:25:49.819155] process:330 strm
    [15:25:49.819305] process_strm:214 strm command t
    [15:25:49.819341] sendSTAT:174 STAT: STMt
    [15:25:50.820462] sendSTAT:174 STAT: STMt
    [15:25:51.156263] process:330 strm
    [15:25:51.156432] process_strm:214 strm command a
    [15:25:51.156466] process_strm:248 skip ahead interval: 11
    [15:25:51.172430] output_thread:351 skip 485 of 485 frames
    [15:25:52.157530] sendSTAT:174 STAT: STMt
    [15:25:53.158782] sendSTAT:174 STAT: STMt
    [15:25:53.818375] process:330 strm
    [15:25:53.818527] process_strm:214 strm command t
    [15:25:53.818565] sendSTAT:174 STAT: STMt
    [15:25:54.819670] sendSTAT:174 STAT: STMt
    [15:25:55.820966] sendSTAT:174 STAT: STMt
    [15:25:56.822267] sendSTAT:174 STAT: STMt
    [15:25:57.817468] process:330 strm
    [15:25:57.817637] process_strm:214 strm command t
    [15:25:57.817675] sendSTAT:174 STAT: STMt
    [15:25:58.818661] sendSTAT:174 STAT: STMt
    [15:25:59.819975] sendSTAT:174 STAT: STMt
    [15:26:00.821235] sendSTAT:174 STAT: STMt
    [15:26:01.816847] process:330 strm
    [15:26:01.817009] process_strm:214 strm command t
    [15:26:01.817046] sendSTAT:174 STAT: STMt
    [15:26:02.818153] sendSTAT:174 STAT: STMt
    [15:26:03.819401] sendSTAT:174 STAT: STMt
    [15:26:04.820657] sendSTAT:174 STAT: STMt
    [15:26:05.816168] process:330 strm
    [15:26:05.816330] process_strm:214 strm command t
    [15:26:05.816369] sendSTAT:174 STAT: STMt
    [15:26:06.817480] sendSTAT:174 STAT: STMt
    [15:26:07.818738] sendSTAT:174 STAT: STMt
    [15:26:08.154814] process:330 strm
    [15:26:08.155000] process_strm:214 strm command a
    [15:26:08.155035] process_strm:248 skip ahead interval: 10
    [15:26:08.169462] output_thread:351 skip 441 of 441 frames
    [15:26:09.156107] sendSTAT:174 STAT: STMt
    [15:26:09.815300] process:330 strm
    [15:26:09.815463] process_strm:214 strm command t
    [15:26:09.815502] sendSTAT:174 STAT: STMt
    [15:26:10.816612] sendSTAT:174 STAT: STMt
    [15:26:11.817874] sendSTAT:174 STAT: STMt
    [15:26:12.818893] sendSTAT:174 STAT: STMt
    [15:26:13.814580] process:330 strm
    [15:26:13.814771] process_strm:214 strm command t
    [15:26:13.814810] sendSTAT:174 STAT: STMt
    [15:26:14.815463] sendSTAT:174 STAT: STMt
    [15:26:15.816732] sendSTAT:174 STAT: STMt
    [15:26:16.818036] sendSTAT:174 STAT: STMt
    [15:26:17.818102] process:330 strm
    [15:26:17.818351] process_strm:214 strm command t
    [15:26:17.818389] sendSTAT:174 STAT: STMt
    [15:26:18.819512] sendSTAT:174 STAT: STMt
    [15:26:19.820774] sendSTAT:174 STAT: STMt
    [15:26:20.822071] sendSTAT:174 STAT: STMt
    [15:26:21.823366] sendSTAT:174 STAT: STMt
    [15:26:22.812982] process:330 strm
    [15:26:22.813132] process_strm:214 strm command t
    [15:26:22.813169] sendSTAT:174 STAT: STMt
    [15:26:23.814286] sendSTAT:174 STAT: STMt
    [15:26:24.815573] sendSTAT:174 STAT: STMt
    [15:26:25.147426] process:330 strm
    [15:26:25.147579] process_strm:214 strm command a
    [15:26:25.147613] process_strm:248 skip ahead interval: 10
    [15:26:25.166477] output_thread:351 skip 441 of 441 frames
    [15:26:26.148682] sendSTAT:174 STAT: STMt
    [15:26:26.812334] process:330 strm
    [15:26:26.812500] process_strm:214 strm command t
    [15:26:26.812538] sendSTAT:174 STAT: STMt
    [15:26:27.813638] sendSTAT:174 STAT: STMt
    [15:26:28.534217] stream_thread:161 end of stream
    [15:26:28.534512] sendDSCO:193 DSCO: 0
    [15:26:29.535454] sendSTAT:174 STAT: STMt
    [15:26:30.536140] sendSTAT:174 STAT: STMt
    [15:26:30.811628] process:330 strm
    [15:26:30.811778] process_strm:214 strm command t
    [15:26:30.811815] sendSTAT:174 STAT: STMt
    [15:26:31.812945] sendSTAT:174 STAT: STMt
    [15:26:32.814245] sendSTAT:174 STAT: STMt
    [15:26:33.815552] sendSTAT:174 STAT: STMt
    [15:26:34.811328] process:330 strm
    [15:26:34.811497] process_strm:214 strm command t
    [15:26:34.811536] sendSTAT:174 STAT: STMt
    [15:26:35.812664] sendSTAT:174 STAT: STMt
    [15:26:36.813948] sendSTAT:174 STAT: STMt
    [15:26:37.815258] sendSTAT:174 STAT: STMt
    [15:26:38.816565] sendSTAT:174 STAT: STMt
    [15:26:39.810375] process:330 strm
    [15:26:39.810547] process_strm:214 strm command t
    [15:26:39.810586] sendSTAT:174 STAT: STMt
    [15:26:40.143505] sendSTAT:174 STAT: STMt
    [15:26:40.143724] process:330 strm
    [15:26:40.143763] process_strm:214 strm command a
    [15:26:40.143794] process_strm:248 skip ahead interval: 10
    [15:26:40.158866] output_thread:351 skip 441 of 441 frames
    [15:26:41.144911] sendSTAT:174 STAT: STMt
    [15:26:42.146205] sendSTAT:174 STAT: STMt
    [15:26:43.146799] sendSTAT:174 STAT: STMt
    [15:26:44.148126] sendSTAT:174 STAT: STMt
    [15:26:44.808989] process:330 strm
    [15:26:44.809144] process_strm:214 strm command t
    [15:26:44.809182] sendSTAT:174 STAT: STMt
    [15:26:45.810613] sendSTAT:174 STAT: STMt
    [15:26:46.811969] sendSTAT:174 STAT: STMt
    [15:26:47.813289] sendSTAT:174 STAT: STMt
    [15:26:48.808030] process:330 strm
    [15:26:48.808184] process_strm:214 strm command t
    [15:26:48.808221] sendSTAT:174 STAT: STMt

    [1]+ Stopped ./squeezelite -d all=debug 192.168.1.19
    root@debian:/opt/squeezelite# ^C
    root@debian:/opt/squeezelite#


    I hope you can see something from the log

    Cheers
    Steen
    piCorePlayer a small player for the Raspberry Pi in RAM.
    Homepage: https://sites.google.com/site/picoreplayer/home

    Please donate if you like the piCorePlayer

  6. #6
    Senior Member
    Join Date
    Apr 2005
    Posts
    8,279
    Quote Originally Posted by sbp View Post
    OK here is the log file>

    root@debian:/# cd opt
    root@debian:/opt# cd squeezelite
    root@debian:/opt/squeezelite# ./squeezelite -d all=debug 192.168.1.19
    Don't see anything there other than its synced - could you try with -d all=sdebug which will produce far more - can you relate specific activity to the output problem. Can you also try with different output devices (direct hardware rather than just default for instance)

  7. #7
    Senior Member Mnyb's Avatar
    Join Date
    Feb 2006
    Location
    Västerås Sweden
    Posts
    13,634
    Hmm any idea why it does this , it happened after i changed album it sticks to 100% cpu even when paused:

    Code:
    Tasks: 171 total,   2 running, 169 sleeping,   0 stopped,   0 zombie
    Cpu(s):  8.8%us,  4.6%sy,  0.0%ni, 86.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:  16412848k total,  1285412k used, 15127436k free,    69856k buffers
    Swap: 31249404k total,        0k used, 31249404k free,   432488k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                          
     2228 mikael    20   0 90136 7872 2068 S  101  0.0   2:40.21 squeezelite                                                                                                                      
     1437 root      20   0  163m  49m  19m S    2  0.3   0:52.32 Xorg                                                                                                                             
     2183 mikael    20   0 1589m 116m  45m S    1  0.7   0:30.16 cinnamon                                                                                                                         
     2199 mikael     9 -11  490m 6800 4264 S    1  0.0   0:57.47 pulseaudio                                                                                                                       
     2505 mikael    20   0  747m 159m  33m S    1  1.0   0:47.36 firefox                                                                                                                          
     2559 mikael    20   0  544m  16m  10m S    0  0.1   0:01.29 gnome-terminal                                                                                                                   
        1 root      20   0 24468 2368 1352 S    0  0.0   0:01.54 init                                                                                                                             
        2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd
    --------------------------------------------------------------------
    Main hifi: Touch + CIA PS +MeridianG68J MeridianHD621 MeridianG98DH 2 x MeridianDSP5200 MeridianDSP5200HC 2 xMeridianDSP3100 +Rel Stadium 3 sub.
    Bedroom/Office: Boom
    Kitchen: Touch + powered Fostex PM0.4
    Misc use: Radio (with battery)
    iPad1 with iPengHD & SqueezePad
    (in storage SB3, reciever ,controller )
    server HP proliant micro server N36L with ClearOS Linux

    http://people.xiph.org/~xiphmont/demo/neil-young.html

  8. #8
    Senior Member Mnyb's Avatar
    Join Date
    Feb 2006
    Location
    Västerås Sweden
    Posts
    13,634
    Quote Originally Posted by Mnyb View Post
    Hmm any idea why it does this , it happened after i changed album it sticks to 100% cpu even when paused:

    Code:
    Tasks: 171 total,   2 running, 169 sleeping,   0 stopped,   0 zombie
    Cpu(s):  8.8%us,  4.6%sy,  0.0%ni, 86.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:  16412848k total,  1285412k used, 15127436k free,    69856k buffers
    Swap: 31249404k total,        0k used, 31249404k free,   432488k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                          
     2228 mikael    20   0 90136 7872 2068 S  101  0.0   2:40.21 squeezelite                                                                                                                      
     1437 root      20   0  163m  49m  19m S    2  0.3   0:52.32 Xorg                                                                                                                             
     2183 mikael    20   0 1589m 116m  45m S    1  0.7   0:30.16 cinnamon                                                                                                                         
     2199 mikael     9 -11  490m 6800 4264 S    1  0.0   0:57.47 pulseaudio                                                                                                                       
     2505 mikael    20   0  747m 159m  33m S    1  1.0   0:47.36 firefox                                                                                                                          
     2559 mikael    20   0  544m  16m  10m S    0  0.1   0:01.29 gnome-terminal                                                                                                                   
        1 root      20   0 24468 2368 1352 S    0  0.0   0:01.54 init                                                                                                                             
        2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd
    typical not always able to reproduce it happens sometimes but i got 4 cores can i trap this in some way ?
    --------------------------------------------------------------------
    Main hifi: Touch + CIA PS +MeridianG68J MeridianHD621 MeridianG98DH 2 x MeridianDSP5200 MeridianDSP5200HC 2 xMeridianDSP3100 +Rel Stadium 3 sub.
    Bedroom/Office: Boom
    Kitchen: Touch + powered Fostex PM0.4
    Misc use: Radio (with battery)
    iPad1 with iPengHD & SqueezePad
    (in storage SB3, reciever ,controller )
    server HP proliant micro server N36L with ClearOS Linux

    http://people.xiph.org/~xiphmont/demo/neil-young.html

  9. #9
    Senior Member
    Join Date
    Apr 2006
    Location
    White Plains, NY
    Posts
    209
    Thanks for putting this together. This could prove quite handy to have running on my laptop.

    I have the 64 bit version up and running on Mint 13. Have been playing FLAC files synced to my Touch without any issues thus far.

    -Chris

  10. #10
    Senior Member
    Join Date
    Apr 2005
    Posts
    8,279
    Quote Originally Posted by Mnyb View Post
    typical not always able to reproduce it happens sometimes but i got 4 cores can i trap this in some way ?
    could you run strace -p with the pid of the process - can you see it making system calls?
    otherwise are you able to reproduce frequently, so it do it with -d all=debug or -d all=sdebug?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •