Cannot resample to 768kHz / version 3.703 bug?

Hi I am new here and the answer to the question I want to ask is nowhere to be found. I’m using Volumio OS (x86) and had to replace the original HW for a new, more modern one (originally ASUS VIVO PC, now Gigabyte BRIX). I have the PC connected to a Gustard X18 DAC and it works fantastic. The sound is excellent. All other settings, connections incl. USB cable is the same. I use resampling from time to time and I noticed that now when I set 768kHz, the output frequency does not change. It stays the last one before the change (at the desired 768kHz). The DAC shows the frequency at the input, so I am able to see what the PC is sending out… I suspect the problem may be in the new version 3.703, I’m sure it worked in previous versions. Unfortunately I changed the HW, so I don’t know where the fault is now. Can someone please test this so I can be sure it is a SW problem, not HW? Please do not address the meaningfulness of the resampling setup :slight_smile:

Thx,
TomBa22

What does resample do in Python?

Just as extra info, could you do

cat /proc/asound/card5/stream0
cat /proc/asound/card5/pcm0p/sub0/hw_params

while playing your resampled track and post the output here?
Then I can compare with my Khadas Tone 2 Pro, with the following capabilities:
44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600 and 786000.
Highest I can get with resampling is 384000Hz.

This is with 3.703 on a Dell Wyse 3040 and also on an HP X2-10 with v3.670
So, this is definitely not new, but there may be a reason for it.
@volumio ??

Thank you for your info. I am 100% sure I got 786kHz output in the 3.661 version. It seems to me there is the socket.io (new ver. 2.3.0) issue (used from 3.695 version).

Tested the same with an Odroid N2, and Topping DX3Pro+ (PCM 44.1kHz-768kHz/16Bit-32Bit DSD(Native) : DSD64-DSD512 DSD(Dop) : DSD64-DSD256)
V3.666 and V3.703.
V3.666 Max up sampling: 384kHz
V3.703 Max up sampling: 384kHz

 cat /proc/asound/card1/stream0
Topping DX3 Pro+ at usb-xhci-hcd.0.auto-1.2, high speed : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 1
    Packet Size = 480
    Momentary freq = 384012 Hz (0x30.0060)
    Feedback Format = 16.16
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 1 OUT (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
  Interface 1
    Altset 2
    Format: S32_LE
    Channels: 2
    Endpoint: 1 OUT (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
  Interface 1
    Altset 3
    Format: SPECIAL DSD_U32_BE
    Channels: 2
    Endpoint: 1 OUT (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
`cat /proc/asound/card1/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 384000 (384000/1)
period_size: 32767
buffer_size: 131072`

rPi4, V3.703, Topping E50
image
Max up sampling: 384kHz

cat /proc/asound/card5/stream0

Topping E50 at usb-0000:01:00.0-1.1, high speed : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 1
    Packet Size = 576
    Momentary freq = 384051 Hz (0x30.01a0)
    Feedback Format = 16.16
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
    Bits: 32
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 1
    Implicit Feedback Mode: No
  Interface 1
    Altset 2
    Format: S32_LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 2
    Implicit Feedback Mode: No
  Interface 1
    Altset 3
    Format: SPECIAL DSD_U32_BE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
    Bits: 32
    DSD raw: DOP=0, bitrev=0
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 3
    Implicit Feedback Mode: No
cat /proc/asound/card5/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 384000 (384000/1)
period_size: 32768
buffer_size: 131072

Tested also with an HP-Elitedesk and Topping E50, V3.695.
Here up sampling is working:

cat /proc/asound/card5/stream0
Topping E50 at usb-0000:00:14.0-5, high speed : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 1
    Packet Size = 776
    Momentary freq = 768002 Hz (0x60.0010)
    Feedback Format = 16.16
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
    Bits: 32
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 1
    Implicit Feedback Mode: No
  Interface 1
    Altset 2
    Format: S32_LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 2
    Implicit Feedback Mode: No
  Interface 1
    Altset 3
    Format: SPECIAL DSD_U32_BE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
    Bits: 32
    DSD raw: DOP=0, bitrev=0
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 3
    Implicit Feedback Mode: No

cat /proc/asound/card5/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 768000 (768000/1)
period_size: 96000
buffer_size: 384000

Upgraded to V3.703
Up sampling is still working ok.

cat /proc/asound/card5/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 768000 (768000/1)
period_size: 96000
buffer_size: 384000

Last test Dell Wyse 3040 and Topping E50
V3.695, up sampling is working.

cat /proc/asound/card5/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 768000 (768000/1)
period_size: 96000
buffer_size: 384000

V3.703, up sampling is still working

cat /proc/asound/card5/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 768000 (768000/1)
period_size: 96000
buffer_size: 384000

Marco, what kind of track did you use for testing?
I used a 44100Hz/24bit flac stream.

Fleetwood MAC, Rumours, 44.1kHz/16bit => Up sample OK
Also used a radio stream 128kps => Up sample OK
Bon Jovi, 2020, 48kHz/24bit => Up sample OK
AC/DC, Power-up, 88.2kHz/24Bit => Up sample OK
The Black Crowes, Sting Me, 96kHz/24Bit => Failing

I tried a lot of different ones, but don’t seem to get past 384kHz, not with an older Khadas Tone board.
Not necessarily a “bug” to me as it seems to work with @Wheaten 's Topping using the same hardware, but then I have no idea what influences this behavior.

As this is an edge case for me (and I don’t want to address the original poster’s resampling meaningfulness), I’ll leave it with that.
Perhaps @volumio has an idea

Thanks to everybody who spent the time by checking that. I reinstalled the new BRIX PC to Volumio OS version 3.634 to be sure. The result is the same as with the newest 3.703 version. Cannot past 384kHz. It seems either a kind of HW limit of BRIX PC (12th gen Intel CPU N200) or the combination of BRIX + Volumio. The former ASUS VIVO PC was based on Intel 4th gen CPU (i3 4030U) and it is possible this platform is more compatible with Volumio than just intel 12th gen.

96kHz vs 44.1 kHz double blind test:

“An extremely thorough, properly-conducted double blind test was done wherein several groups of people (audiophiles, professional audio engineers, average college students) were presented with 96khz audio, and that same audio converted to 44.1khz. The goal was to see if people could hear a difference. The findings of the study indicated that not even the audiophiles or the engineers could get above a 50% success rate (or at most, 1 or 2 points) - meaning they would have done just as well simply flipping a coin.

https://web.archive.org/web/20080413073214/http://mixonline.com/recording/mixing/audio_emperors_new_sampling/index1.html