So which one is it, float32le or s32le?
Well, it seems
pacmd list-sink-inputs
is showing float32le, where the output of
hwparams
is s32le.
Here is the output of
stream0
for my SDAC:
Code:
Grace Design SDAC-B USB 2.0 at usb-0000:00:1d.7-5, high speed : USB Audio
Playback:
Status: Stop
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600
Data packet interval: 125 us
Bits: 32
Channel map: FL FR
Interface 1
Altset 2
Format: SPECIAL
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600
Data packet interval: 125 us
Bits: 32
DSD raw: DOP=0, bitrev=0
Channel map: FL FR
So, yeah surprisingly looks like it only supports 32bit? Seems odd, but that explains everything output in s32le
and the output of the same file playing back via audacious:
Code:
[david@david-protools ~]$ pacmd list-sink-inputs
1 sink input(s) available.
index: 9
driver: <protocol-native.c>
flags:
state: RUNNING
sink: 0 <alsa_output.usb-Grace_Design_SDAC-B_USB_2.0-00.analog-stereo>
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
muted: no
current latency: 500.00 ms
requested latency: 460.00 ms
sample spec: float32le 2ch 44100Hz
channel map: front-left,front-right
Stereo
resample method: copy
module: 14
client: 20 <Audacious>
properties:
media.name = "Audacious"
application.name = "Audacious"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "35"
application.process.id = "3767"
application.process.user = "david"
application.process.host = "david-protools"
application.process.binary = "audacious"
application.language = "en_US.utf8"
window.x11.display = ":0"
application.process.machine_id = "675df23d99b8436bb7b9875ef0b74bd4"
application.process.session_id = "2"
application.icon_name = "audacious"
module-stream-restore.id = "sink-input-by-application-name:Audacious"
Code:
Every 1.0s: cat /proc/asound/card2/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 44100
buffer_size: 88200
Good news is it appears that, with exception of the fixed bit depth, I've been able to configure things to my liking. Below is my findings:
etc/pulse/daemon.conf changes
avoid-resampling = true
default-sample-format = s24le
default-sample-rate = 44100
alternate-sample-rate = 96000
*Pulse audio volume control will lock 44.1 hz, must be closed for above to function properly
Pulseaudio volume control Configuration:
Built in Audio: Analog Stereo Input
SDAC-B USB 2.0 : Analog Stereo Output
Audacity -- confirmed to be recording via internal card at s32le 96000hz and playback. With *pacmd list-sink-inputs returns -0- , confirming bypass of Pulseaudio.
Audacity controls configured for ALSA with Alsamixer properly controling volume in Audacity for recording and playback with PA volume control closed.
Audacious - Configured to output to Pulseaudio
Confirmed with native playback of sample rate, and no resampling. All bitdepth is listed as s32le via terminal hwparams. Appropriate sample rate according to media was displayed in terminal output.
Google Chrome/Spotify/Youtube
Appropriate playback @ s32le / 44.1khz for listed websites. * did not test online hi fidelity files.
So, for me alternate sample rate and avoid-resampling were key to arrive at the settings that work for me.
Thanks for all your help!