Configuration issue with DAC?

Let me preface this plea for assistance by saying that I am new to Linux and SBCs so please bear with me.

Yesterday I received an Allo Sparky and USB Bridge pre-configured with DietPi and after many hours of browsing this forum and a few others I eventually managed to get it set up with LMS + Tidal playing over Squeezelite.

However I can only get that to work, and indeed any other player software, using a Pioneer N50A as the DAC. For various reasons my plan was to have it running into the DAC section on my Musical Fidelity M6SI but there I run into the issue that I only get sound for rates of up-to 32 khz. Anything above that purports to play but I just get silence. The DAC is capable to play up-to 24 bit 96 Khz

Further, and it may or may not be relevant, but the dac is only recognised as accepting S24_3LE formatted data which seems to me a little odd.

Any assistance, pointers etc would be gratefully received.

Thanks

Hi,

We highly recommend using the Allo GUI image, which allows for easy selection of bitdepth outputs on various software:
https://dietpi.com/forum/t/dietpi-allo-com-web-gui-image/1523/1

If you are using this image already, please can you confirm, in the web interface:

  • Software you are trying to use
  • 24 bitdepth is set for those required applications, in the web interface (eg: squeezelite/mpd/shairport-sync)

Ticket:
https://github.com/MichaIng/DietPi/issues/1212

I’m using DietPi ver 157 and the latest versions of all software mentioned below.

To assist I have run a series of test and detailed the steps I took, issues and results below:

Using M6Si

MPD set to 16 bit 44100

Test files played with Mopidy:

  • WAV 32khz S24 3LE SUCCESS
  • FLAC 32khz S24 3LE SUCCESS
  • WAV 44.1khz S24 3LE FAIL - SILENT
  • FLAC 44.1khz S24 3LE FAIL - SILENT
  • FLAC 96khz S24 3LE FAIL - SILENT

ALSA OUTPUT STREAM INFORMATION (AOSI) in ALLO GUI. showed for each test file its bit depth and data rate as above.

MPD Set to 24 bit 96khz SOXR disabled

Test files played with Mopidy:

  • WAV 32khz S24 3LE SUCCESS
  • FLAC 32khz S24 3LE SUCCESS
  • WAV 44.1khz S24 3LE FAIL - SILENT
  • FLAC 44.1khz S24 3LE FAIL - SILENT
  • FLAC 96khz S24 3LE FAIL - SILENT

AOSI showed for each test file its bit depth and data rate as above.

MPD Set to 24 bit 96khz SOXR enabled HIGH

Test files played with Mopidy:

  • WAV 32khz S24 3LE SUCCESS
  • FLAC 32khz S24 3LE SUCCESS
  • WAV 44.1khz S24 3LE FAIL - SILENT
  • FLAC 44.1khz S24 3LE FAIL - SILENT
  • FLAC 96khz S24 3LE FAIL - SILENT

AOSI showed for each test file its bit depth and data rate as above.

Switching to LMS playing test tracks via SqueezeLite.

AOSI showed “no setup”.

The following were tried without resolving the “no setup” issue:

  • Switching between 16 and 24 bits

  • Rebooted via ALLO GUI.

  • Powered off Sparky by ALLO GUI

  • Connected via SSH-config and reselected usb-dav in dietpi-config before rebooting.

  • Restarted LMS and Squeezelite services.

  • Reset to defaults in Justboom

Using Pioneer N50

Switching to the Pioneer N50 and switching Squeezelite to 16 bits the test tracks played as follows whilst AOSI showed the appended data:

  • WAV 32khz S24 3LE SUCCESS, AOSI 44.1khz S16LE
  • FLAC 32khz S24 3LE SUCCESS AOSI 44.1khz S16LE
  • WAV 44.1khz S24 3LE SUCCESS AOSI 44.1khz S16LE
  • FLAC 44.1khz S24 3LE SUCCESS AOSI 44.1khz S16LE
  • FLAC 96khz S24 3LE SUCCESS AOSI 96khz S16LE

Switching Squeezelite to 24 bits using Allo GUI the “no setup” message re-appeared;.

Switching Squeezelite to 32 bits using Allo GUI all test tracks played as follows:

  • WAV 32khz S24 3LE SUCCESS, AOSI 44.1khz S32LE
  • FLAC 32khz S24 3LE SUCCESS AOSI 44.1khz S32LE
  • WAV 44.1khz S24 3LE SUCCESS AOSI 44.1khz S32LE
  • FLAC 44.1khz S24 3LE SUCCESS AOSI 44.1khz S32LE
  • FLAC 96khz S24 3LE SUCCESS AOSI 96khz S32LE

I hope this all makes some sense and is better yet of some use. :slight_smile:

Cheers

Hi,

As the Pioneer N50 is fully functional, it looks like a compatibility issue, limited to M6Si and/or Linux. I’ve checked the 4.14 linux kernel and was unable to find any quirks/fixes related to the M6Si.
https://github.com/torvalds/linux/search?utf8=✓&q=m6si&type=

Have you been successful running the M6Si on any other Linux hardware (eg: PC), at the failed sample rates?

  • WAV 44.1khz S24 3LE FAIL - SILENT
  • FLAC 44.1khz S24 3LE FAIL - SILENT
  • FLAC 96khz S24 3LE FAIL - SILENT

I’d like to check the system logs if possible.
If you can replicate the above (to fill system logs), then please run the following command:

dietpi-bugreport

This will send a bug report with system logs/info. Maybe we can find something :slight_smile:

I’ll set up a Linux machine tomorrow and re-run the tests.

Is there any particular distribution you would prefer me to use for such?

Thanks

Excellent, please let us know results. Any Debian based OS should be fine. Ubuntu should also be fine, however, unsure if they use stock kernel.

Ideally, stick with Debian 9:
https://www.debian.org/CD/http-ftp/

Apologies for the delay but I have had much joy getting Linux installed on my desktop. Anyway here goes:

Ubuntu 17.04

Kernel 4.10.0-37-generic

Details on M6Si using pacmd list-sinks

\

  • index: 3
    name: <alsa_output.usb-Musical_Fidelity_M6si_Integrated_24_96-00.iec958-stereo>
    driver: <module-alsa-card.c>
    flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
    state: RUNNING
    suspend cause:
    priority: 9048
    volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
    balance 0.00
    base volume: 65536 / 100% / 0.00 dB
    volume steps: 65537
    muted: no
    current latency: 84.79 ms
    max request: 23 KiB
    max rewind: 516 KiB
    monitor source: 5
    sample spec: s24le 2ch 44100Hz
    channel map: front-left,front-right
    Stereo
    used by: 1
    linked by: 4
    configured latency: 90.00 ms; range is 0.50 … 2000.00 ms
    card: 3 <alsa_card.usb-Musical_Fidelity_M6si_Integrated_24_96-00>
    module: 25
    properties:
    alsa.resolution_bits = “24”
    device.api = “alsa”
    device.class = “sound”
    alsa.class = “generic”
    alsa.subclass = “generic-mix”
    alsa.name = “USB Audio”
    alsa.id = “USB Audio”
    alsa.subdevice = “0”
    alsa.subdevice_name = “subdevice #0
    alsa.device = “0”
    alsa.card = “3”
    alsa.card_name = “M6si Integrated 24/96”
    alsa.long_card_name = “Musical Fidelity M6si Integrated 24/96 at usb-0000:00:14.0-11, full speed”
    alsa.driver_name = “snd_usb_audio”
    device.bus_path = “pci-0000:00:14.0-usb-0:11:1.0”
    sysfs.path = “/devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/sound/card3”
    udev.id = “usb-Musical_Fidelity_M6si_Integrated_24_96-00”
    device.bus = “usb”
    device.vendor.id = “25b0”
    device.vendor.name = “Musical Fidelity”
    device.product.id = “0020”
    device.product.name = "M6si Integrated 24/96 "
    device.serial = “Musical_Fidelity_M6si_Integrated_24_96”
    device.string = “iec958:3”
    device.buffering.buffer_size = “529200”
    device.buffering.fragment_size = “264600”
    device.access_mode = “mmap+timer”
    device.profile.name = “iec958-stereo”
    device.profile.description = “Digital Stereo (IEC958)”
    device.description = “M6si Integrated 24/96 Digital Stereo (IEC958)”
    alsa.mixer_name = “USB Mixer”
    alsa.components = “USB25b0:0020”
    module-udev-detect.discovered = “1”
    device.icon_name = “audio-card-usb”
    ports:
    iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
    properties


    Test files played with Clementine:

44.1khz 16 bits. Played. PACMD:

list-sink-inputs
1 sink input(s) available.
index: 5
driver: <protocol-native.c>
flags: START_CORKED
state: RUNNING
sink: 1 <alsa_output.usb-Musical_Fidelity_M6si_Integrated_24_96-00.iec958-stereo>
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
muted: no
current latency: 39.04 ms
requested latency: 90.00 ms
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
resample method: speex-float-1
module: 13
client: 10
properties:
media.name = “‘E-Ong Muan Sun’ by ‘Apichat Pakwan’”
application.name = “Clementine”
native-protocol.peer = “UNIX socket client”
native-protocol.version = “32”
media.role = “music”
application.process.id = “2293”
application.process.user = “jon”
application.process.host = “jon-MS-7919”
application.process.binary = “clementine”
application.language = “en_GB.UTF-8”
window.x11.display = “:0”
application.process.machine_id = “dd1dc7057ace44efa93e3ca2a2080204”
application.process.session_id = “1”
application.icon_name = “clementine”
module-stream-restore.id = “sink-input-by-media-role:music”
media.title = “E-Ong Muan Sun”
media.artist = “Apichat Pakwan”


96khz 24 bit. Played but bit depth reduced. PACMD:

1 sink input(s) available.
index: 7
driver: <protocol-native.c>
flags: START_CORKED
state: RUNNING
sink: 1 <alsa_output.usb-Musical_Fidelity_M6si_Integrated_24_96-00.iec958-stereo>
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
muted: no
current latency: 110.00 ms
requested latency: 90.00 ms
sample spec: s16le 2ch 96000Hz
channel map: front-left,front-right
Stereo
resample method: speex-float-1
module: 13
client: 15
properties:
media.name = “‘Arnesen: MAGNIFICAT 4. Et misericordia’ by ‘Nidarosdomens jentekor & TrondheimSolistene’”
application.name = “Clementine”
native-protocol.peer = “UNIX socket client”
native-protocol.version = “32”
media.role = “music”
application.process.id = “2293”
application.process.user = “jon”
application.process.host = “jon-MS-7919”
application.process.binary = “clementine”
application.language = “en_GB.UTF-8”
window.x11.display = “:0”
application.process.machine_id = “dd1dc7057ace44efa93e3ca2a2080204”
application.process.session_id = “1”
application.icon_name = “clementine”
module-stream-restore.id = “sink-input-by-media-role:music”
media.title = “Arnesen: MAGNIFICAT 4. Et misericordia”
media.artist = “Nidarosdomens jentekor & TrondheimSolistene”

LMS and Squeezelite were installed. Both test tracks and all music from Tidal played at the requisite sample rate but with increased bit depth; i.e. with a 16 bit 44.1 khz flac PACMD gave:

1 sink input(s) available.
index: 0
driver: <protocol-native.c>
flags:
state: RUNNING
sink: 1 <alsa_output.usb-Musical_Fidelity_M6si_Integrated_24_96-00.iec958-stereo>
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
muted: no
current latency: 27.78 ms
requested latency: 10.00 ms
sample spec: s32le 2ch 44100Hz
channel map: front-left,front-right
Stereo
resample method: copy
module: 12
client: 10 <ALSA plug-in [squeezelite]>
properties:
media.name = “ALSA Playback”
application.name = “ALSA plug-in [squeezelite]”
native-protocol.peer = “UNIX socket client”
native-protocol.version = “32”
application.process.id = “2208”
application.process.user = “jon”
application.process.host = “jon-MS-7919”
application.process.binary = “squeezelite”
application.language = “C”
window.x11.display = “:0”
application.process.machine_id = “dd1dc7057ace44efa93e3ca2a2080204”
application.process.session_id = “1”
module-stream-restore.id = "sink-input-by-application-name:ALSA plug-in [squeezelite]

and a 24 bit 96khz file gave the following in PACMD:

1 sink input(s) available.
index: 5
driver: <protocol-native.c>
flags:
state: RUNNING
sink: 1 <alsa_output.usb-Musical_Fidelity_M6si_Integrated_24_96-00.iec958-stereo>
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
muted: no
current latency: 21.29 ms
requested latency: 10.00 ms
sample spec: s32le 2ch 96000Hz
channel map: front-left,front-right
Stereo
resample method: speex-float-1
module: 12
client: 16 <ALSA plug-in [squeezelite]>
properties:
media.name = “ALSA Playback”
application.name = “ALSA plug-in [squeezelite]”
native-protocol.peer = “UNIX socket client”
native-protocol.version = “32”
application.process.id = “2208”
application.process.user = “jon”
application.process.host = “jon-MS-7919”
application.process.binary = “squeezelite”
application.language = “C”
window.x11.display = “:0”
application.process.machine_id = “dd1dc7057ace44efa93e3ca2a2080204”
application.process.session_id = “1”
module-stream-restore.id = “sink-input-by-application-name:ALSA plug-in [squeezelite]”

I hope this assist.

Thanks for your time looking at this.

Hi,

Many thanks for running those tests.

LMS and Squeezelite were installed. Both test tracks and all music from Tidal played at the requisite sample rate but with increased bit depth

Interesting, maybe the DAC prefers S32 under Linux.
I’am unable to find any tests completed on S32 bit depth in this thread for M6si (I only see 16/24 bit tests). Have you tried setting S32 on the Sparky, using the M6si?

I admit I hadn’t tried 32 bits with the M6SI as the manufacturer stated 24 bit / 96 khz max over USB.

USBRIDGE to M6SI

MPD set to 32 bit 96000

Test files played with Mopidy:

  • WAV 32 khz 24 bit PLAYED AOSI 32 khz 24 bit
  • WAV 32 khz 24 bit PLAYED AOSI 32 khz 24 bit
  • WAV 44.1 khz 24 bit FAIL - SILENT AOSI 44.1 khz 24 bit
  • WAV 44.1 khz 32 bit FAIL - SILENT AOSI 44.1l khz 24 bit
  • WAV 96 khz 32 bit FAIL - SILENT AOSI 96 khz 24 bit
  • WAV 96 khz 32 bit FAIL SILENT AOSI 96 khz 24 bit

MPD set to 24 bit 96000

Test files played with Mopidy:

  • WAV 32 khz 24 bit PLAYED AOSI 32 khz 24 bit
  • WAV 32 khz 24 bit PLAYED AOSI 32 khz 24 bit
  • WAV 44.1 khz 24 bit FAIL - SILENT AOSI 44.1 khz 24 bit
  • WAV 44.1 khz 32 bit FAIL - SILENT AOSI 44.1l khz 24 bit
  • WAV 96 khz 32 bit FAIL - SILENT AOSI 96 khz 24 bit
  • WAV 96 khz 32 bit FAIL SILENT AOSI 96 khz 24 bit

MPD set to 16 bit 96000

Test files played with Mopidy:

  • WAV 32 khz 24 bit PLAYED AOSI 32 khz 24 bit
  • WAV 32 khz 24 bit PLAYED AOSI 32 khz 24 bit
  • WAV 44.1 khz 24 bit FAIL - SILENT AOSI 44.1 khz 24 bit
  • WAV 44.1 khz 32 bit FAIL - SILENT AOSI 44.1l khz 24 bit
  • WAV 96 khz 32 bit FAIL - SILENT AOSI 96 khz 24 bit
  • WAV 96 khz 32 bit FAIL SILENT AOSI 96 khz 24 bit

MPD set to NATIVE/color]

Test files played with Mopidy:

  • WAV 32 khz 24 bit PLAYED AOSI 32 khz 24 bit
  • WAV 32 khz 24 bit PLAYED AOSI 32 khz 24 bit
  • WAV 44.1 khz 24 bit FAIL - SILENT AOSI 44.1 khz 24 bit
  • WAV 44.1 khz 32 bit FAIL - SILENT AOSI 44.1l khz 24 bit
  • WAV 96 khz 32 bit FAIL - SILENT AOSI 96 khz 24 bit
  • WAV 96 khz 32 bit FAIL SILENT AOSI 96 khz 24 bit

Switching to LMS playing test tracks via SqueezeLite.

No playback of any test file at any sample rate - bit depth with Squeezelite set to any bit depth.

ROON

Interestingly, having downloaded the Trial, Roon will play back when the Sparky is connected to the Pioneer, with no loss of resolution. However when the Sparky is connected to the M6SI Roon sees it but when one clicks to configure the error pops up to say device not found. I have no idea if this helps or just throws up another issue.

Thanks