Alsa and pipewire 24bit audio to hardware

hello

i’ve been trying to find out how to make alsa pass 24bit audio to my soundcard, as by default it appears to pass 16bit audio.

i appreciate all internal mixing is done at 32bit.

I created /etc/asound.conf with the following:

pcm.!default {
    type hw
    card 0
    format S24_LE
}

ctl.!default {
    type hw
    card 0
}

Is that all there is to it, or does PipeWire need some config as well?

normally no configuration should be necessary for alsa.
I have configured pipewire as follows
/home/weingeist/.config/pipewire/pipewire.conf.d/clock-rate.conf

context.properties = {
    default.clock.allowed-rates = [ 48000 44100 88200 96000 192000 ]
    }

check with pw-top

Does the sound card support 24bit ?

This may cause problems with PipeWire configuration as default ALSA output

/etc/alsa/conf.d/99-pipewire-default.conf

pcm.!default {
    type pipewire
    playback_node "-1"
    capture_node  "-1"
    hint {
        show on
        description "Default ALSA Output (currently PipeWire Media Server)"
    }
}

ctl.!default {
    type pipewire
}

PipeWire ALSA client properties can be modified with a custom configuration in home folder

PipeWire: client.conf - ALSA client properties

An alsa.properties section can be added to configure client applications that connect via the PipeWire ALSA plugin.

# ~/.config/pipewire/client.conf.d/custom.conf
 
alsa.properties = {
    #alsa.deny = false
    #alsa.format = 0
    #alsa.rate = 0
    #alsa.channels = 0
    #alsa.period-bytes = 0
    #alsa.buffer-bytes = 0
    #alsa.volume-method = cubic         # linear, cubic
}

@Dusty

Please provide information about your soundcard that might help others to answer your questions. Perhaps a link to the sound card’s specifications, model number, etc.

inxi -A

Please also provide system information as described (below).

Regards.


System Information

Output of this command (formatted according to forum requirements) may be useful for those wishing to help:

inxi --filter --verbosity=8

or the short form:

inxi -zv8

Be prepared to provide more information and outputs from other commands whenever asked. It’s equally important to provide as much actionable information as possible in your first post, rather than simply indicating there is a problem.

OP has already posted system information in another topic 5 days ago

OP must become accustomed to posting system information in every new topic they create.

Nonetheless, thank you for retrieving it.

It does appear to support 24bit processing.

LinuxHardware.org lists a few successes with Manjaro, mainly on Asus boards;

oh oh :face_with_head_bandage:

https://www.linux.org/threads/creative-sound-core-3d-with-sbx-pro-studio-not-recognized-volume-issue.49377/

https://bbs.archlinux.org/viewtopic.php?id=236364

https://bbs.archlinux.org/viewtopic.php?id=297781

linux-hardware.org - pci:1102-0012-1102-0033
Vendor - Creative Labs
Name - CA0132 Sound Core3D [Sound Blaster Recon3D / Z-Series / Sound BlasterX AE-5 Plus]
Subsystem - Creative Labs / Sound Blaster Audio Controller

LKML: Connor McAdams: [PATCH 00/11] Add ZxR support + bugfixes
Sat, 29 Sep 2018 23:03:15 -0400

This patch series adds support for the Sound Blaster ZxR, as well as a
few bug fixes. This should be the last ca0132 based Creative card that
needed support to be added.

elixir.bootlin.com - sound/pci/hda/patch_ca0132.c - Linux source code v6.13.7
SND_PCI_QUIRK(0x1102, 0x0033, “Sound Blaster ZxR”, QUIRK_SBZ),

Sound Blaster Z series - Wikipedia

The Sound Blaster Z-Series was announced in August 2012 and includes the PCI Express x1 cards, Z, Zx and ZxR which use the same Sound Core3D chip as the previous Sound Blaster Recon3D series

The Sound Blaster ZxR is the top of line sound card of the series and uses an entirely different card from the Z and Zx. Some of its features include TI Burr-Brown 124 dB SNR DACs, two swappable op-amps, a 600 ohm 80 mW TI TPA6120 headphone amplifier, and 192 kHz stereo pass through

ignore this

found how to interrogate Alsa and it’s negotiating the right format for the ZXR (S32LE)

and how did you do it?

2 Likes

super solution
others who have this problem will be happy about it

The “Solution” has been removed.

Please do not mark your own post as a solution with such a vague comment; it’s helpful to nobody.

Instead, please summarise exactly what you did so that others finding this topic will immediately understand how you reached your conclusion.

Regards.

Build AUR package alsa-capabilities or download script from SON|DA / alsa-capabilities · GitLab

wget "https://gitlab.com/sonida/alsa-capabilities/-/raw/master/alsa-capabilities"

and use -s or --samplerates to show supported sample rates

cat /proc/asound/card0/pcm0p/sub0/hw_params

run this as user in a terminal

output for a ZXR:

access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 6
rate: 96000 (96000/1)
period_size: 2048
buffer_size: 32768

your device may not be card0 though

find your device using:

cat /proc/asound/cards

I haven’t forced anything, so i’m guessing this is a driver negotiated config between ALSA and the ZXR

only thing i’ve changed was in Pipewire, adding more supported sample rates to avoid resampling as much as possible

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.