Announcement

Collapse
No announcement yet.

Announce: piCorePlayer 8.0.0

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • Originally posted by Man in a van
    Code:
    Card 2, ID `A', name `USB-C to 3.5mm Headphone Jack A'
      Device 0, ID `USB Audio', name `USB Audio', 1 subdevices (1 available)
    [color=red]    2 channels, sampling rate 48000..48000 Hz[/color]
        Sample formats: S16_LE, S24_3LE
        Buffer size range from 96 to 262144
        Period size range from 48 to 131072
    This shows ALSA is reporting that card 'A' is only capable of 48kHz and squeezelite should report this to LMS unless overriden.
    I wonder whether Smitty2K1 has some parameter on the squeezelite command line to override this info or mangle the data (e.g. resample)

    @Smitty2K1 - get a better understanding of what has gone wrong - the rate change should be measured (e.g. how long does it take in realtime to play 30 secs of a CD quality 44.1Khz/16 bit audio) - factor of 2 usually means channel issue, fast/slow factor of 8% usually means 44.1k vs 48k mixup.

    Comment


    • Originally posted by Man in a van
      And these are the other commands
      Full marks for diligence.

      The output shows there is no difference in capabilties between the hw:CARD=A and the iec958:CARD=A.
      If you tried with plughw:CARD=A not usually worthwhile, as it should show all possible capabilities as ALSA will resample / convert any format request from an application so that it can be played on the h/w device.

      Why plughw: results in no audio whereas iec958: got slow rate might point to an issues about the format that OP is trying to play.

      Hypothesis:
      If requested format was say 192kHz/32 and device was plughw. LMS would pass audio to standard plughw and it would accept it but ALSA buffering might be too small to start audio.
      If requested format was say 192kHz/32 and device was iec958. LMS would do some transcoding to say 48k (perhaps incorrectly) and then iec958 would be play it but with errors due to transcoding issue.

      I suggest OP provides details of format of requested audio and when playing to iec958 - log LMS transcoding if any (i.e. player.source set to INFO for the "song")

      Comment


      • I forgot about plughw, doh!, which plays fine for me

        Apple dongle plughw.txt

        ronnie

        looking forward to next weekend's game v France
        Last edited by Man in a van; 2022-02-06, 11:59.

        Comment


        • A comment from @Ralphy which I bookmarked sometime ago

          Squeezelite setting

          When you use plughw: instead of hw:, the linux alsa subsystem will resample to a rate your sound card supports. I find the better option is to use hw: and add -u E to the Upsample settings field on the squeezelite tab of the picoreplayer web gui. With that squeezelite will only resample the audio when the sound card does not have support for lower or higher sample rates otherwise the audio is played untouched. Also, the resampler built into squeezelite does a much better job than the default resampler used by alsa.

          Comment


          • I would recommend using -o hw:CARD=A,DEV=0 for the output device, this way squeezelite knows the "true" capabilities of the device. ie. only supports 48Khz

            add -u E to the command line which configures squeezelite to resample all streams with sample rates that are NOT 48K. For 48K content no resampling occurs.

            add -r 384000 to the command line so LMS doesn't resample any streams, this avoids content from being resampled twice.
            Ralphy

            1-Touch, 5-Classics, 3-Booms, 2-UE Radio
            Squeezebox client builds donations always appreciated.

            Comment


            • Originally posted by ralphy
              I would recommend using -o hw:CARD=A,DEV=0 for the output device, this way squeezelite knows the "true" capabilities of the device. ie. only supports 48Khz

              add -u E to the command line which configures squeezelite to resample all streams with sample rates that are NOT 48K. For 48K content no resampling occurs.

              add -r 384000 to the command line so LMS doesn't resample any streams, this avoids content from being resampled twice.
              Thanks Ralphy

              Comment


              • Originally posted by ralphy
                I would recommend using -o hw:CARD=A,DEV=0 for the output device, this way squeezelite knows the "true" capabilities of the device. ie. only supports 48Khz
                Although in this case the iec958 seems to have the same h/w capabilities, I think it is better practice to use "hw" to be sure no ALSA processing.
                To help understand why the rate change in playback is happening, I think the player.source logging is also necessary to see what processing LMS is performing and whether it is the source of the problem (e.g. after resampling is audio sent as Flac or PCM to player) .

                Comment


                • Hey everyone thanks for the feedback. For the record it was output volume that was my issue and the other playback options didn't solve that so I'm not worried about the rate change as I'll continue to use HW. I did more research last night and the Apple USB-C dongle only outputs 1V RMS so that's less than many other line output devices. I'm going to purchase and try a similar dongle that does 2V RMS to hopefully volume match my Chromecast.

                  Comment


                  • Sorry if that was discussed lately.

                    I have pCp 8.1.0 installed on RPi CM4 board.
                    Also, I have a M.2 SSD (EXT4 partition) attached to the PCI-Express port of CM4 official IO board.
                    I am trying to use it for LMS cache and music files, but I have a problem.
                    First of all, The GUI button for "Fix Permissions" did nothing. I had to SSH and manually assign mounted drive to tc:staff instead of root in order to could write on it.
                    Second, I could not move LMS cache and preferences to mounted SSD because it not appears on the list of mounted drives in GUI.

                    Could you please help me to solve that?
                    Thank you !

                    Comment


                    • Its because the list of devices is limited to /dev/sd?? and /dev/mmcblk?? To limit the list, as there are many things mounted

                      PCIe did not exist until the CM4 came along. What is the mount device for a PCIe device?
                      Last edited by paul-; 2022-02-06, 17:31.
                      piCorePlayer a small player for the Raspberry Pi in RAM.
                      Homepage: https://www.picoreplayer.org

                      Please donate if you like the piCorePlayer

                      Comment


                      • @paul- Thank you for your answer !

                        SSD is mounted as /dev/nvme0n1p1

                        Comment


                        • I'll have to make that update. I'm looking to do a web page update soon. I'll post when I do
                          piCorePlayer a small player for the Raspberry Pi in RAM.
                          Homepage: https://www.picoreplayer.org

                          Please donate if you like the piCorePlayer

                          Comment


                          • Thanks !
                            I am looking forward for the update.
                            Best regards !

                            Comment


                            • Hello good ppl.

                              So I have setup RPI 4 Model B (4gb) and I'm using it only to run piCorePlayer (with Squeezelite and LMS). I'm connecting over wifi (5ghz) and using internal bluetooth to connect to the speakers. Everything works, but randomly I get stutter in audio from time to time (not sure why this is happening). Anyway, I wanted to configure the player a bit, maybe increase some buffer or something, schedule restart or similar (to prevent this stutter).

                              It seems that picore added a second player to the list after the restart of RPI (auto-named here Logitech BT Adapter after the bluetooth connection). Originally I had only one (I've just named it piCorePlayer), both are up and running as process. Now, I didn't mind at first that second player was added, since music is playing over it normally, but I wanted to fix that stutter problem. So my problem is when I click in the web UI on the second player (Logitech BT Adapter), it won't switch to it, just returns me to the main page (and original piCorePlayer):

                              Click image for larger version

Name:	picoreq1.jpg
Views:	1
Size:	186.7 KB
ID:	1574453

                              Is this expected behavior? Sorry if my question is a bit unclear, I'm still pretty new to all of this.

                              Thanks for any help in advance

                              Comment


                              • Yes, this is by design. Bluetooth creates a completely separate device. I doubt the stuttering is between LMS and squeezelite. Its likely in the bluetooth transmission.

                                I assume your bluetooth extensions are up to date. I would force the headset to use SBC codec, and see if that helps.
                                piCorePlayer a small player for the Raspberry Pi in RAM.
                                Homepage: https://www.picoreplayer.org

                                Please donate if you like the piCorePlayer

                                Comment

                                Working...
                                X
                                😀
                                🥰
                                🤢
                                😎
                                😡
                                👍
                                👎