You are not logged in.
Firefox with apulse
Firefox pulse-rust → apulse → ALSA Input is ENABLED Roundtrip latency 162.86ms (18.90)$ MOZ_LOG="cubeb:5" apulse firefox 2>&1 about:support
...
Type: output
State: enabled
...
Type: input
State: enabled
Maximum channels: 2
Format: S16LE S16BE F32LE F32BE (0x3030) (default: S16LE)
Rate: [1, 384000] (default: 44100)
Labout:support
Name Firefox
Version 140.5.0esr
Build ID 20251106203603
...
Audio Backend pulse-rust
Max Channels 2
Preferred Sample Rate 44100
Roundtrip latency (standard deviation) 162.86ms (18.90)Firefox with ALSA without apulse
Firefox → ALSA NOTHING about Input Roundtrip latency ?$ MOZ_LOG="cubeb:5" firefox 2>&1 about:support
...
Type: output
State: enabled
Maximum channels: 10000
Format: S16LE (0x10) (default: S16LE)
Rate: [48000, 48000] (default: 48000)
Latency: lo 0 frames, hi 0 frames
# NOTHING about Inputabout:support
Name Firefox
Version 140.5.0esr
Build ID 20251106203603
...
Audio Backend alsa
Max Channels 10000
Preferred Sample Rate 48000
Roundtrip latency (standard deviation) NaNms (NaN)Défault ALSA config, only one soundcard iMic USB
You can file a bug to Firefox (CUBEB's ALSA backend)
Full duplex is also enabled by default with asym in /usr/share/alsa/cards/HDA-Intel.conf
MOZ_LOG="cubeb:5" should show
Type: input
State: enabledDMIX IS ENABLED by default.
Remove your ALSA config, play audio from two sources at once, and you’ll hear the default dmix quietly doing its job. When using multiple sound cards, setting defaults.pcm.!card and defaults.ctl.!card in ~/.asoundrc ensures ALSA directs audio and control to the correct device. Without this, removing your config may cause ALSA to default to a different card — potentially making sound "disappear." Use the card’s name (e.g., PCH) or index to lock the default.
Set defaults in ~/.asoundrc:
$ cat ~/.asoundrc
defaults.pcm.!card PCH
defaults.ctl.!card PCHand run
apulse firefox$ apt-cache search apulse
apulse - PulseAudio emulation for ALSADebug (logging):
with apulse
MOZ_LOG="cubeb:5" apulse firefox 2>&1 about:supportwithout apulse
MOZ_LOG="cubeb:5" firefox 2>&1 about:supportFull duplex in ALSA is achieved by combining dmix (for playback) and dsnoop (for capture) via the asym plugin.
Just like with dmix, dsnoop must be explicitly tuned.
dsnoop.conf should be fixed in the same way as dmix.conf
By default, both dmix and dsnoop use fixed, high-latency settings (e.g., period_time 125000 µs).
Notice: high latency is embedded in default Debian's ALSA config. It is unimaginable.
High latency is embedded in Debian's default ALSA configuration — particularly through conservative defaults in dmix and dsnoop, where period_time often defaults to 125000 µs (125 ms) and periods to 16, resulting in total buffer latencies up to 2 seconds.
This is not a myth, not a conspiracy theory — it’s a documented design choice favoring stability over performance. Most users never notice, but for real-time audio, it’s crippling.
The default dmix and dsnoop settings prioritize stability over performance — large buffers prevent underruns, which is crucial for PulseAudio, as it relies on ALSA plugins for mixing and expects reliable, glitch-free operation. PulseAudio assumes ALSA is just a backend, so stable, high-latency defaults reduce the risk of dropouts, even if responsiveness suffers.
It’s unimaginable for a system that supports professional audio. It may not look sane — high latency in ALSA defaults is a trade-off for stability, not sound quality or usability. It masks architectural inefficiencies and fails real-time applications. True sanity would be low-latency defaults that work out of the box. While the defaults may seem insane for low-latency use, they are a safeguard against instability in the PulseAudio layer.
Notice: the reason for high latency is period_time defaulting to 125000 µs (125 ms) in both dmix and dsnoop, unless overridden.
In Debian's dmix.conf and dsnoop.conf, period_time defaults to -1, which means "use the hardware default" — often resulting in 125 ms periods. Combined with periods = 16, this gives a total capture buffer latency of:
125 ms × 16 = 2000 ms (2 seconds) — extremely high.
To fix it, override both:
period_time (40000 µs = 40 ms)
periods (4)
So total latency becomes:
40 ms × 4 = 160 ms — much better.
By appending /usr/share/alsa/pcm/dmix.conf to ~/.asoundrc and modifying it with:
sed -i 's/default -1/default 40000/; s/default 1024/default -1/; s/default 16/default 4/' ~/.asoundrcYou override the default high-latency settings:
period_time default -1 → now 40000 µs (40 ms)
period_size default 1024 → now -1 (controlled by rate)
periods default 16 → now 4
This reduces playback latency significantly and matches fftrate needs. The same logic should be applied to dsnoop for symmetric, low-latency full duplex.
/usr/share/alsa/pcm/dmix.conf → enables software mixing for playback
/usr/share/alsa/pcm/dsnoop.conf → enables simultaneous recording
/usr/share/alsa/alsa.conf → main config, includes others
Full duplex requires asym device that links dmix (playback) and dsnoop (capture), like:
pcm.duplex {
type asym
playback.pcm "dmix"
capture.pcm "dsnoop"
}
pcm.!default {
type plug
slave.pcm "duplex"
}Such setup can be added manually to ~/.asoundrc.
You can also find a sort of "full duplex" in /usr/share/alsa/cards/HDA-Intel.conf It seems to be enabled by default.
Rinat Ibragimov (creator of apulse):
apulse relies on ALSA's dmix, dsnoop, and plug plugins to handle multiple sound sources and capture streams running at the same time. dmix plugin muxes multiple playback streams; dsnoop plugin allow multiple applications to capture from a single microphone; and plug plugin transparently converts audio between various sample formats, sample rates and channel numbers. For more than a decade now, ALSA comes with these plugins enabled and configured by default.
_https://github.com/i-rinat/apulse
1. For more than a decade now, ALSA comes with dmix, dsnoop, plug , and asym (full duplex), that is, a fully functional software mixer, enabled and configured by default.
2. Devuan users have been, shall we say, unhurried in noticing the elephant in the room.
Remove your ALSA config, play audio from two sources at once, and you’ll hear the default dmix quietly doing its job. When using multiple sound cards, setting defaults.pcm.!card and defaults.ctl.!card in ~/.asoundrc ensures ALSA directs audio and control to the correct device. Without this, removing your config may cause ALSA to default to a different card — potentially making sound "disappear." Use the card’s name (e.g., PCH) or index to lock the default.
There oughtn’t to be any trouble with apulse, unless one’s gone and enabled a rather peculiar ALSA configuration. If Firefox stumbles on ALSA input, it’s a bug in cubeb’s backend — nothing more.
With default Debian settings, full duplex is likely to expose the high default latency (e.g., 125 ms period × 16 periods = 2 seconds) to users, even those with moderate hearing.
With full duplex, round-trip latency (mic-to-speaker or loopback) becomes obvious — especially in real-time monitoring. The default dmix and dsnoop settings were designed for stability, not performance, and reveal a two-period delay minimum.
With Debian defaults, full duplex would make the latency audible and embarrassing, even to semi-deaf users. It would expose insanity of "sane defaults" _https://wiki.debian.org/ALSA#Configuration
The manual fix — overriding period_time and periods — is essential to restore sanity.
The Debian wiki’s claim of "sane defaults" is misleading. The actual defaults — period_size 1024, periods 16 — result in high latency (often 200+ ms), which is far from sane for real-time audio. These settings are not optimized for low latency or high-fidelity resampling (e.g., fftrate). ALSA users must manually override them, proving that sane is a misnomer.
Sanity may be boring — and perhaps that’s why it’s so rarely implemented. In Linux, as in history, the dramatic, the complex, and the broken often take center stage. Simplicity and correctness don’t generate headlines. But with the right config, sanity can be built — even if it’s not the default.
How to consume this manual without thinking.
First of all, it is almost impossible. It might be a real challenge for Devuan consumer community. But, nevertheless, you have to try it simply because it is a challenge. In any case, both thinking and non-thinking may inevitably produce misunderstanding.
Keep it minimal:
period_time = 40000 (40 ms per audio chunk)
periods = 4 (total buffer = 16 ms)
Only change defaults.pcm.dmix.rate to set sample rate (e.g., 44100, 48000, 96000, 192000)
That’s it.
ALSA automatically adjusts period_size based on the rate — just like physics: if volume is fixed, changing temperature sets pressure. Here, timing is fixed, so sample rate sets data flow. No resampling jitter. No app config needed.
The modified dmix.conf stays untouched. This works because ALSA’s defaults use @func refer - they respect defaults.pcm.dmix.rate.
One line controls everything. Clean. Predictable. Precise.
The period_time = 40000 and periods = 4 settings are critical for fftrate to perform exact, low-jitter resampling.
Unlike basic resamplers, fftrate is a high-quality, real-time FFT-based resampler that needs precise buffer timing to align its windowing and avoid phase errors. The 40ms period time (40,000 µs) ensures sufficient data for accurate spectral analysis, while 4 periods balance latency and stability.
When you set:
defaults.pcm.dmix.rate 192000
defaults.pcm.rate_converter "fftrate"and fix period_time = 40000, ALSA configures the mixing engine so all audio is resampled via fftrate to 192kHz — regardless of source rate (44.1k, 48k, etc). This gives bit-perfect timing, zero jitter (J: 0.00%), and superior audio fidelity.
Firefox (via cubeb) then feeds into this pipeline — it sees a clean 48kHz or 44.1kHz stream, but resampling is silently handled by ALSA/fftrate, not the browser. That’s why the logs show:
Rates: 48000 --> 192000 (J: 0.00%, T: FFT, W: Vorbis)This setup is exactly what is needed: one central, high-quality resampling stage, perfectly timed.
With due modesty, I present my no-nonsense ALSA config:
period_time = 40000
periods = 4
Only variable: defaults.pcm.dmix.rate
That’s it. Everything else? Left to ALSA’s good sense.
By fixing the period time, I give fftrate enough data for clean, FFT-based resampling — no jitter, no drift, just smooth 0.00% magic. Apps feed in at any rate; ALSA resamples to my chosen dmix.rate (192kHz, thank you) with surgical precision.
It’s not clever. It’s not flashy. But it works — even for someone like most ALSA users, whose hearing’s gone slightly south and whose memory’s worse.
So yes: this might just be the gold standard… for audiophiles who are half-deaf, half-blind, and cheerfully demented.
One final note: fftrate is vastly superior to most soundcards’ built-in hardware resamplers. So while you can vary the sample rate freely, best practice is to set defaults.pcm.dmix.rate to the maximum your DAC supports — 192kHz or 384kHz — and leave it there.
This ensures all audio is resampled once, at the highest quality, before hitting your hardware. No more relying on mediocre onboard DSP. You’re not just avoiding jitter — you’re upgrading your entire chain.
So yes: set it to the max, and forget it. Let fftrate do the work nature intended.
fftrate is exceptionally fast because it was optimized over 15 years ago for real-time, high-quality resampling on modest hardware. Its design leverages FFT-based interpolation, allowing it to outperform most built-in hardware resamplers — even on modern systems.
Setting defaults.pcm.dmix.rate to your DAC’s maximum supported rate ensures all audio is resampled just once, at the highest quality, before playback.
So: set it to the max, and forget it. Let fftrate do the heavy lifting — efficiently, accurately, and without breaking a sweat.
WARNING: This ALSA setup is not complete. For example, "full duplex for simultaneous playback and recording" is missing. A complete solution, that is a fully functional ALSA software mixer, is provided by arateconf ALSA configuration utility
_https://dev1galaxy.org/viewtopic.php?id=6644
If you compile Audacious, libaudcore should be inside Audacious.
libaudcore5t64:amd64 should be removed.
On Debian and Ubuntu, the audacious package is split into 6 packages:
audacious
audacious-dev
libaudcore5t64
libaudgui6
libaudqt3
libaudtag3t64_https://tracker.debian.org/pkg/audacious
The audacious-plugins package is split into two packages:
audacious-plugins
audacious-plugins-data_https://tracker.debian.org/pkg/audacious-plugins
They all should be removed, if you are going to compile and install Audacious from git.
On Gentoo, you can remove ALL pulseaudio (together with libs) with one command. It will recompile many packages to remove pulse dependencies. On Debian, there are developers scripts which are normally used to recompile all packages.
Do you need a fully functional ALSA software mixer? For example:
$ cat ~/.asoundrc
# ALSA library configuration file managed by arateconf.
#
# MANUAL CHANGES TO THIS FILE WILL BE OVERWRITTEN!
#
# Manual changes to the ALSA library configuration should be implemented
# by editing the ~/.asoundrc file, not by editing this file.
#=====================================================
# Configuration for system
#-----------------------------------------------------
# Perform dmixer
pcm.dmixer_system
{
type dmix
ipc_key 1024
ipc_perm 0666
hint
{
show off
description "Direct mixing of multiple audio streams (system)"
}
slave
{
pcm "hw:system,0"
rate 48000
channels 2
format S16_LE
period_size 1920
buffer_size 7680
}
}
# Perform dsnooper
pcm.dsnooper_system
{
type dsnoop
ipc_key 1025
ipc_perm 0666
hint
{
show off
description "Recording from the same device for several applications simultaneously (system)"
}
slave
{
pcm "hw:system,0"
rate 48000
format S16_LE
period_size 1920
buffer_size 7680
}
}
# Perform duplex
pcm.duplex_system
{
type asym
playback.pcm "dmixer_system"
capture.pcm "dsnooper_system"
hint
{
show off
description "Full duplex for simultaneous playback and recording (system)"
}
}
# Perform convert
pcm.convert_system
{
type rate
converter fftrate
hint
{
show off
description "Sample rate converter (system)"
}
slave
{
pcm "duplex_system"
rate 48000
format S16_LE
}
}
# Perform plug device
pcm.primary_system
{
type plug
slave.pcm "convert_system"
hint.description "Default device (system)"
}
#=====================================================
# Configuration for PCH
#-----------------------------------------------------
# Perform dmixer
pcm.dmixer_PCH
{
type dmix
ipc_key 1026
ipc_perm 0666
hint
{
show off
description "Direct mixing of multiple audio streams (PCH)"
}
slave
{
pcm "hw:PCH,0"
rate 192000
channels 2
format S32_LE
period_size 7680
buffer_size 30720
}
}
# Perform dsnooper
pcm.dsnooper_PCH
{
type dsnoop
ipc_key 1027
ipc_perm 0666
hint
{
show off
description "Recording from the same device for several applications simultaneously (PCH)"
}
slave
{
pcm "hw:PCH,0"
rate 192000
format S32_LE
period_size 7680
buffer_size 30720
}
}
# Perform duplex
pcm.duplex_PCH
{
type asym
playback.pcm "dmixer_PCH"
capture.pcm "dsnooper_PCH"
hint
{
show off
description "Full duplex for simultaneous playback and recording (PCH)"
}
}
# Perform convert
pcm.convert_PCH
{
type rate
converter fftrate
hint
{
show off
description "Sample rate converter (PCH)"
}
slave
{
pcm "duplex_PCH"
rate 192000
format S32_LE
}
}
#=====================================================
# Configuration for default audio device
#-----------------------------------------------------
# Perform plug device
pcm.!default
{
type plug
slave.pcm "convert_PCH"
hint.description "Default device"
}$ cat /proc/asound/cards
0 [system ]: USB-Audio - iMic USB audio system
Griffin Technology, Inc iMic USB audio system at usb-0000:00:1a.0-1.3.4, full s
1 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xf7e10000 irq 31Firefox has cubeb inside
libcubeb - Cross-platform Audio I/O Library
_https://github.com/mozilla/cubeb
All backends are still buggy, except for the backend for CoreAudio (macOS).
A standalone cubeb is easy to compile with CMake and ninja. You can debug ALSA backend.
Zoom app works with ALSA, provided that you have a fully functional software mixer.
But Discord should be used with apulse
apulse discordDebian Wiki: Configuration
You can find ALSA configuration files in the /etc/alsa/conf.d/ directory. A lot of files are already included here by default. Advanced features such as mixing should already be configured with sane defaults. If you want to make changes, add a new file in here.
_https://wiki.debian.org/ALSA#Configuration
There are indeed very secret dmix and dsnoop enabled by default.
$ grep -r "defaults.pcm.dmix.rate" /usr/share/alsa/
/usr/share/alsa/pcm/dsnoop.conf: name defaults.pcm.dmix.rate
/usr/share/alsa/pcm/dmix.conf: name defaults.pcm.dmix.rate
/usr/share/alsa/alsa.conf:defaults.pcm.dmix.rate 48000However, the so-called "sane defaults" may seem rather strange, for example:
period_size 1024
periods 16$ grep -rE "period|1024|16" /usr/share/alsa/pcm/dmix.conf
period_size {
".period_size"
default 1024
period_time {
".period_time"
periods {
".periods"
default 16fftrate cannot perform exact resampling with such "sane defaults". This can easily be fixed with the help of simple esoteric math:
period_time = (period_size/sample_rate) * 1000000To perform exact resampling with low latency, fftrate needs proper settings
period_time 40000
periods 4First of all, create a simple ALSA config.
If you have only one sound card, it may look like this:
$ cat ~/.asoundrc
defaults.pcm.rate_converter "fftrate"
# defaults.pcm.dmix.rate 192000
# defaults.pcm.dmix.rate 96000
# defaults.pcm.dmix.rate 48000 # Default
# defaults.pcm.dmix.rate 44100If you have several sound cards, you have to set up a default card, for example:
$ cat /proc/asound/cards
0 [system ]: USB-Audio - iMic USB audio system
Griffin Technology, Inc iMic USB audio system at usb-0000:00:1a.0-1.3.4, full s
1 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xf7e10000 irq 31$ cat ~/.asoundrc
defaults.pcm.rate_converter "fftrate"
defaults.pcm.dmix.rate 192000
# defaults.pcm.dmix.rate 96000
# defaults.pcm.dmix.rate 48000 # Default
# defaults.pcm.dmix.rate 44100
defaults.pcm.!card PCH
defaults.ctl.!card PCH Now you can execute esoteric commands:
echo -e '\n\n# This dmix config can be used for various values of defaults.pcm.dmix.rate\n# Intel HDA native sample rates (min - max): 44100 - 192000 (44100,48000,96000,192000)' >> ~/.asoundrc
cat /usr/share/alsa/pcm/dmix.conf >> ~/.asoundrc
sed -i 's/default -1/default 40000/; s/default 1024/default -1/; s/default 16/default 4/' ~/.asoundrc The result:
$ cat ~/.asoundrc
defaults.pcm.rate_converter "fftrate"
defaults.pcm.dmix.rate 192000
# defaults.pcm.dmix.rate 96000
# defaults.pcm.dmix.rate 48000 # Default
# defaults.pcm.dmix.rate 44100
defaults.pcm.!card PCH
defaults.ctl.!card PCH
# This dmix config can be used for various values of defaults.pcm.dmix.rate
# Intel HDA native sample rates (min - max): 44100 - 192000 (44100,48000,96000,192000)
#
# dmix output
#
pcm.!dmix {
@args [ CARD DEV SUBDEV FORMAT RATE CHANNELS ]
@args.CARD {
type string
default {
@func refer
name defaults.pcm.dmix.card
}
}
@args.DEV {
type integer
default {
@func refer
name defaults.pcm.dmix.device
}
}
@args.SUBDEV {
type integer
default 0
}
@args.FORMAT {
type string
default {
@func refer
name defaults.pcm.dmix.format
}
}
@args.RATE {
type integer
default {
@func refer
name defaults.pcm.dmix.rate
}
}
@args.CHANNELS {
type integer
default {
@func refer
name defaults.pcm.dmix.channels
}
}
type dmix
ipc_key {
@func refer
name defaults.pcm.ipc_key
}
ipc_gid {
@func refer
name defaults.pcm.ipc_gid
}
ipc_perm {
@func refer
name defaults.pcm.ipc_perm
}
tstamp_type {
@func refer
name defaults.pcm.tstamp_type
}
slave {
pcm {
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}
format $FORMAT
rate $RATE
channels $CHANNELS
period_size {
@func refer
name {
@func concat
strings [
"defaults.dmix."
{
@func card_id
card $CARD
}
".period_size"
]
}
default -1
}
period_time {
@func refer
name {
@func concat
strings [
"defaults.dmix."
{
@func card_id
card $CARD
}
".period_time"
]
}
default 40000
}
periods {
@func refer
name {
@func concat
strings [
"defaults.dmix."
{
@func card_id
card $CARD
}
".periods"
]
}
default 4
}
}
hint {
show {
@func refer
name defaults.namehint.extended
}
description "Direct sample mixing device"
device_output $DEV
}
}Now we can debug Firefox
NOTE: If you have in Firefox's about:config this entry:
media.cubeb.force_sample_rate 48000delete it.
$ MOZ_LOG="cubeb:3" firefox 2>&1 about:support | grep -vE "input latency|ATT"
[Parent 24955: Main Thread]: I/cubeb media.cubeb.sandbox: true
Input: 44100 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1764
Output: 192000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 7680
Rates: 44100 --> 192000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.
Input: 44100 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1764
Output: 192000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 7680
Rates: 44100 --> 192000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.
[Parent 24955: AudioIPC Server RPC]: E/cubeb cubeb.c:654:DeviceID: "default" (PREFERRED)
Name: "default"
Group: "default"
Vendor: "default"
Type: output
State: enabled
Maximum channels: 10000
Format: S16LE (0x10) (default: S16LE)
Rate: [192000, 192000] (default: 192000)
Latency: lo 0 frames, hi 0 frame
[Parent 24955: Main Thread]: E/cubeb cubeb.c:654:DeviceID: "default" (PREFERRED)
Name: "default"
Group: "default"
Vendor: "default"
Type: output
State: enabled
Maximum channels: 10000
Format: S16LE (0x10) (default: S16LE)
Rate: [192000, 192000] (default: 192000)
Latency: lo 0 frames, hi 0 frameabout:support
Name Firefox
Version 140.5.0esr
Build ID 20251106203603
...
Media
Audio Backend alsa
Max Channels 10000
Preferred Sample Rate 192000Reference media files:
Best Audiophile Vocal 24 bit - Hi-Res Music 2025 - Audiophile Voices
_https://www.youtube.com/watch?v=uO6jfQ5tQHM
_https://youtu.be/uO6jfQ5tQHMBest Voices & Dynamic Sound - Hi-Res Music 24 Bit - Audiophile NBR Music
_https://rutube.ru/video/4202a6f411ad55ea7f55e38f860e26bc/
defaults.pcm.dmix.rate 192000
$ cat ~/.asoundrc
defaults.pcm.rate_converter "fftrate"
defaults.pcm.dmix.rate 192000
# defaults.pcm.dmix.rate 96000
# defaults.pcm.dmix.rate 48000 # Default
# defaults.pcm.dmix.rate 44100
...YouTube: 48000 --> 192000
$ MOZ_LOG="MediaDecoder:4,cubeb:3" firefox 2>&1 https://youtu.be/uO6jfQ5tQHM | awk '!/ATT/ && !/libva/ && !/s=1/ && !/s=0/ && (!/MediaDecoder/ || /rate/)'
[Child 15580: Main Thread]: D/MediaDecoder MediaDecoder[7ff773454200] MetadataLoaded, channels=2 rate=48000 hasAudio=1 hasVideo=1
[Child 15580: MediaSupervisor #1]: I/cubeb media.cubeb.sandbox: true
Input: 44100 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1764
Output: 192000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 7680
Rates: 44100 --> 192000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.
[Child 15580: Main Thread]: D/MediaDecoder MediaDecoder[7ff773454200] FirstFrameLoaded, channels=2 rate=48000 hasAudio=1 hasVideo=1 mPlayState=PLAY_STATE_LOADING transportSeekable=1
[Child 15580: MediaDecoderStateMachine #1]: I/cubeb CubebStreamInit output stream rate 48000
Input: 48000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1920
Output: 192000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 7680
Rates: 48000 --> 192000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.RuTube: 44100 --> 192000
$ MOZ_LOG="MediaDecoder:4,cubeb:3" firefox 2>&1 https://rutube.ru/video/4202a6f411ad55ea7f55e38f860e26bc/ | awk '!/ATT/ && !/libva/ && !/s=1/ && !/s=0/ && (!/MediaDecoder/ || /rate/)'
[Child 16217: Main Thread]: I/cubeb media.cubeb.sandbox: true
Input: 44100 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1764
Output: 192000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 7680
Rates: 44100 --> 192000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.
[Child 16217: Main Thread]: D/MediaDecoder MediaDecoder[7f89b2ef8f00] MetadataLoaded, channels=2 rate=44100 hasAudio=1 hasVideo=1
[Child 16217: Main Thread]: D/MediaDecoder MediaDecoder[7f89b2ef8f00] FirstFrameLoaded, channels=2 rate=44100 hasAudio=1 hasVideo=1 mPlayState=PLAY_STATE_LOADING transportSeekable=1
[Child 16217: BackgroundThreadPool #1]: I/cubeb CubebStreamInit output stream rate 44100
Input: 44100 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1764
Output: 192000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 7680
Rates: 44100 --> 192000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.You can also try defaults.pcm.dmix.rate 44100
$ cat ~/.asoundrc
defaults.pcm.rate_converter "fftrate"
# defaults.pcm.dmix.rate 192000
# defaults.pcm.dmix.rate 96000
# defaults.pcm.dmix.rate 48000 # Default
defaults.pcm.dmix.rate 44100
...YouTube: 48000 --> 44100
$ MOZ_LOG="MediaDecoder:4,cubeb:3" firefox 2>&1 https://youtu.be/uO6jfQ5tQHM | awk '!/ATT/ && !/libva/ && !/s=1/ && !/s=0/ && (!/MediaDecoder/ || /rate/)'
[Child 17205: Main Thread]: D/MediaDecoder MediaDecoder[7ff8efdfc600] MetadataLoaded, channels=2 rate=48000 hasAudio=1 hasVideo=1
[Child 17205: MediaSupervisor #2]: I/cubeb media.cubeb.sandbox: true
[Child 17205: Main Thread]: D/MediaDecoder MediaDecoder[7ff8efdfc600] FirstFrameLoaded, channels=2 rate=48000 hasAudio=1 hasVideo=1 mPlayState=PLAY_STATE_LOADING transportSeekable=1
[Child 17205: MediaDecoderStateMachine #1]: I/cubeb CubebStreamInit output stream rate 48000
Input: 48000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1920
Output: 44100 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1764
Rates: 48000 --> 44100 (J: 0.00%, T: FFT, W: Vorbis)
Ok.It seems that Firefox does not resample anything. Resampling is performed by fftrate, which is now the default ALSA resampler. With new defaults (period_time = 40000, periods = 4), resampling is exact: Jitter = 0.00%
# ~/.asoundrc
defaults.pcm.rate_converter "fftrate"
defaults.pcm.dmix.rate 48000 # Default
...$ audacious 2>&1 'rudra veena and pakhawaj.flac'
Input: 44100 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1764
Output: 48000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1920
Rates: 44100 --> 48000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.$ audacious 2>&1 *.dsf
Input: 1411200 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 56448
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Rates: 1411200 --> 48000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.Ralph, haven't you noticed that Debian/Devuan has already both dmix and dsnoop enabled by default?
Debian Wiki:
Advanced features such as mixing should already be configured with sane defaults.
_https://wiki.debian.org/ALSA#Configuration
Try this command:
grep -r "defaults.pcm.dmix.rate" /usr/share/alsa/Try to play them with Brave browser.
Dailymotion uses numerous trackers, which is typical for an ad-supported video platform. Their business model relies on gathering user data to personalize content recommendations and advertisements.
Trackers Used by Dailymotion
According to Dailymotion's own policies and third-party analyses:
Ad Tracking & Behavioral Advertising: Dailymotion uses tracking to support its service via ads and behavioral targeting. They gather viewing data to personalize ads.
Third-Party Marketing: They utilize third-party services and marketing partners, which often place their own trackers.
Data Sharing: Dailymotion may share collected data with third parties, including subsidiaries of the Vivendi group and other business partners.
Engagement Trackers: Dailymotion Advertising has introduced tools that capture "micro-interactions" like taps, swipes, and time spent to better understand ad engagement.
Essential Operation Trackers: Some cookies are essential for the basic operation of the video player and are used even if you decline non-essential cookies.
Device and Activity Data: When you use the service, they may collect your IP address, device ID, browsing history (videos watched), and ad-watching history.
Brave Shields:
_www.dailymotion.com
Trackers, ads, and more blocked 99+
Shields are UP for this site_www.corriere.it
Trackers, ads, and more blocked 99+
Shields are UP for this site
1. apulse firefox works with zoom addon
2. apulse needs a fully functional ALSA software mixer.
3. zoom app works with ALSA, and you can also run it with apulse.
4. It may not work without a fully functional ALSA software mixer.
5. If you do not know how to configure ALSA, please start a new topic in Multimedia.
This topic is not for Linux newbies who do not want to learn how to compile and build Debian packages.
To achieve full functionality with ALSA, proper configuration is essential, especially on systems where default setups may not suffice.
EXAMPLE:
$ cat ~/.asoundrc
# ALSA library configuration file managed by arateconf.
#
# MANUAL CHANGES TO THIS FILE WILL BE OVERWRITTEN!
#
# Manual changes to the ALSA library configuration should be implemented
# by editing the ~/.asoundrc file, not by editing this file.
#=====================================================
# Configuration for system
#-----------------------------------------------------
# Perform dmixer
pcm.dmixer_system
{
type dmix
ipc_key 1024
ipc_perm 0666
hint
{
show off
description "Direct mixing of multiple audio streams (system)"
}
slave
{
pcm "hw:system,0"
rate 48000
channels 2
format S16_LE
period_size 1920
buffer_size 7680
}
}
# Perform dsnooper
pcm.dsnooper_system
{
type dsnoop
ipc_key 1025
ipc_perm 0666
hint
{
show off
description "Recording from the same device for several applications simultaneously (system)"
}
slave
{
pcm "hw:system,0"
rate 48000
format S16_LE
period_size 1920
buffer_size 7680
}
}
# Perform duplex
pcm.duplex_system
{
type asym
playback.pcm "dmixer_system"
capture.pcm "dsnooper_system"
hint
{
show off
description "Full duplex for simultaneous playback and recording (system)"
}
}
# Perform convert
pcm.convert_system
{
type rate
converter fftrate
hint
{
show off
description "Sample rate converter (system)"
}
slave
{
pcm "duplex_system"
rate 48000
format S16_LE
}
}
# Perform plug device
pcm.primary_system
{
type plug
slave.pcm "convert_system"
hint.description "Default device (system)"
}
#=====================================================
# Configuration for PCH
#-----------------------------------------------------
# Perform dmixer
pcm.dmixer_PCH
{
type dmix
ipc_key 1026
ipc_perm 0666
hint
{
show off
description "Direct mixing of multiple audio streams (PCH)"
}
slave
{
pcm "hw:PCH,0"
rate 192000
channels 2
format S32_LE
period_size 7680
buffer_size 30720
}
}
# Perform dsnooper
pcm.dsnooper_PCH
{
type dsnoop
ipc_key 1027
ipc_perm 0666
hint
{
show off
description "Recording from the same device for several applications simultaneously (PCH)"
}
slave
{
pcm "hw:PCH,0"
rate 192000
format S32_LE
period_size 7680
buffer_size 30720
}
}
# Perform duplex
pcm.duplex_PCH
{
type asym
playback.pcm "dmixer_PCH"
capture.pcm "dsnooper_PCH"
hint
{
show off
description "Full duplex for simultaneous playback and recording (PCH)"
}
}
# Perform convert
pcm.convert_PCH
{
type rate
converter fftrate
hint
{
show off
description "Sample rate converter (PCH)"
}
slave
{
pcm "duplex_PCH"
rate 192000
format S32_LE
}
}
#=====================================================
# Configuration for default audio device
#-----------------------------------------------------
# Perform plug device
pcm.!default
{
type plug
slave.pcm "convert_PCH"
hint.description "Default device"
}Notice:
"Full duplex for simultaneous playback and recording (system)"Debian/Devuan has already dmix configured and enabled by default, but it might not be suitable for your needs.
The Firefox packaged with mainline Debian no longer supports ALSA directly.
It is not true. Firefox-esr works with ALSA. To reduce latency, you have to disable pulse-rust backend and recompile libasound2-plugins with --disable-pulseaudio
_https://dev1galaxy.org/viewtopic.php?id=7523
It is not difficult to compile Firefox without pulseaudio.
Firefox uses 32-bit floating-point audio format by default. If your sound card does not natively support this format, direct hw:device access will not work. You must use the ALSA plug plugin for format conversion. Configure your ALSA default device to use type plug with slave.pcm "hw:X,Y" for automatic format conversion.
Phonon should be enabled in KDE settings.
There is also:
$ apt-file find /usr/bin/phononsettings
phonon4qt5settings: /usr/bin/phononsettingsI am not a KDE user, and KDE has nothing to do with the topic.
Start a new topic in Multimedia.
Do you have Phonon installed?
phonon
-https://tracker.debian.org/pkg/phonon
binaries:
ibphonon-l10n
libphonon4qt5-4t64
libphonon4qt5-data
libphonon4qt5-dev
libphonon4qt5experimental-dev
libphonon4qt5experimental4t64
libphonon4qt6-4t64
libphonon4qt6-dev
libphonon4qt6experimental-dev
libphonon4qt6experimental4t64
phonon4qt5
phonon4qt5-backend-null
phonon4qt5settings
phonon4qt6
phonon4qt6-backend-nullphonon4qt5-backend-vlc/oldstable 0.11.3-1 amd64
Phonon4Qt5 VLC backend
phonon4qt5-backend-gstreamer/oldstable 4:4.10.0-1 amd64
Phonon Qt5 GStreamer 1.0 backendIf you have a solid evidence (+log of compilation), file a bug.
AMAROK with Phonon
amarok 2>&1 Chris\ Rea\ \'And\ You\ My\ Love\'\ by\ Mila\ Gee\ \(HD\).mp3
**********************************************************************************************
** AMAROK WAS STARTED IN NORMAL MODE. IF YOU WANT TO SEE DEBUGGING INFORMATION, PLEASE USE: **
** amarok --debug **
**********************************************************************************************
[0000558a4e898f80] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[0000558a4e898f80] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[0000558a4e898f80] main audio output error: no suitable audio output module
QObject::connect: No such signal Phonon::VLC::MediaObject::angleChanged(int)
QObject::connect: No such signal Phonon::VLC::MediaObject::availableAnglesChanged(int)
WARNING: Phonon::createPath: Cannot connect Phonon::MediaObject ( no objectName ) to Phonon::AudioDataOutput ( no objectName ).Enable Phonon plugin with arateconf
$ arateconf
...
A - Show all plugins [ ]
M - Plug-ins:
[X] Convert, [ ] Expand, [X] Asym
[ ] Play Vol, [X] Dmix
[ ] Rec. Vol, [X] Dsnoop
[ ] Phonon, [ ] Normalizatorand try to run AMAROK without apulse
But why did you post your AMAROK to "How to compile Audacious" topic?
Does it help to solve the problem?
To solve such problems, one my try a scientific method proposed by Feynman
The first principle is that you must not fool yourself - and you are the easiest person to fool. So you have to be very careful about that. After you've not fooled yourself, it's easy not to fool other scientists. You just have to be honest in a conventional way after that.
Feynman, Richard P. (June 1974). "Cargo Cult Science" (PDF). California Institute of Technology.
_http://calteches.library.caltech.edu/51/2/CargoCult.pdf
_https://ghostarchive.org/archive/20221009/http://calteches.library.caltech.edu/51/2/CargoCult.pdf
_https://paulsteinhardt.org/wp-content/uploads/2020/10/CargoCult.pdf
A hypothesis is a statement, which can be verified. Otherwise, it is a myth.
Scientific problems are not easy to solve. You may try, perhaps, a clean install of Devuan, and document your experiments.
A simple script to toggle ALSA configs:
_https://dev1galaxy.org/viewtopic.php?pid=56780#p56780
Remove pulse, pipewire, and pulse plugin
_https://dev1galaxy.org/viewtopic.php?id=7523
Install fftrate
_https://dev1galaxy.org/viewtopic.php?id=7142
Run arateconf to configure ALSA
$ cat ~/.asoundrc
# ALSA library configuration file managed by arateconf.
#
# MANUAL CHANGES TO THIS FILE WILL BE OVERWRITTEN!
#
# Manual changes to the ALSA library configuration should be implemented
# by editing the ~/.asoundrc file, not by editing this file.
#=====================================================
# Configuration for system
#-----------------------------------------------------
# Perform dmixer
pcm.dmixer_system
{
type dmix
ipc_key 1024
ipc_perm 0666
hint
{
show off
description "Direct mixing of multiple audio streams (system)"
}
slave
{
pcm "hw:system,0"
rate 48000
channels 2
format S16_LE
period_size 1920
buffer_size 7680
}
}
# Perform dsnooper
pcm.dsnooper_system
{
type dsnoop
ipc_key 1025
ipc_perm 0666
hint
{
show off
description "Recording from the same device for several applications simultaneously (system)"
}
slave
{
pcm "hw:system,0"
rate 48000
format S16_LE
period_size 1920
buffer_size 7680
}
}
# Perform duplex
pcm.duplex_system
{
type asym
playback.pcm "dmixer_system"
capture.pcm "dsnooper_system"
hint
{
show off
description "Full duplex for simultaneous playback and recording (system)"
}
}
# Perform convert
pcm.convert_system
{
type rate
converter fftrate
hint
{
show off
description "Sample rate converter (system)"
}
slave
{
pcm "duplex_system"
rate 48000
format S16_LE
}
}
# Perform plug device
pcm.primary_system
{
type plug
slave.pcm "convert_system"
hint.description "Default device (system)"
}
#=====================================================
# Configuration for PCH
#-----------------------------------------------------
# Perform dmixer
pcm.dmixer_PCH
{
type dmix
ipc_key 1026
ipc_perm 0666
hint
{
show off
description "Direct mixing of multiple audio streams (PCH)"
}
slave
{
pcm "hw:PCH,0"
rate 192000
channels 2
format S32_LE
period_size 7680
buffer_size 30720
}
}
# Perform dsnooper
pcm.dsnooper_PCH
{
type dsnoop
ipc_key 1027
ipc_perm 0666
hint
{
show off
description "Recording from the same device for several applications simultaneously (PCH)"
}
slave
{
pcm "hw:PCH,0"
rate 192000
format S32_LE
period_size 7680
buffer_size 30720
}
}
# Perform duplex
pcm.duplex_PCH
{
type asym
playback.pcm "dmixer_PCH"
capture.pcm "dsnooper_PCH"
hint
{
show off
description "Full duplex for simultaneous playback and recording (PCH)"
}
}
# Perform convert
pcm.convert_PCH
{
type rate
converter fftrate
hint
{
show off
description "Sample rate converter (PCH)"
}
slave
{
pcm "duplex_PCH"
rate 192000
format S32_LE
}
}
#=====================================================
# Configuration for default audio device
#-----------------------------------------------------
# Perform plug device
pcm.!default
{
type plug
slave.pcm "convert_PCH"
hint.description "Default device"
}The secret configs are here: /usr/share/alsa/
$ grep -r "defaults.pcm.dmix.rate" /usr/share/alsa/
/usr/share/alsa/pcm/dsnoop.conf: name defaults.pcm.dmix.rate
/usr/share/alsa/pcm/dmix.conf: name defaults.pcm.dmix.rate
/usr/share/alsa/alsa.conf:defaults.pcm.dmix.rate 48000Debian Wiki:
Advanced features such as mixing should already be configured with sane defaults.
_https://wiki.debian.org/ALSA#Configuration
It seems to be a sort of "secret software mixer". It is not difficult to prove that it does exist, and it is enabled. See: _https://dev1galaxy.org/viewtopic.php?id=7538
You may also try secret esoteric commands like these:
$ echo "Debian Default Sample Rate: $(grep -r "defaults.pcm.dmix.rate" /usr/share/alsa/ | grep ":defaults" | cut -d\ -f2-) Hz"
Debian Default Sample Rate: 48000 Hz$ grep -rE "defaults.pcm.dmix.rate|defaults.pcm.card|defaults.pcm.device" /usr/share/alsa/ | grep -E ":defaults.pcm.dmix.rate|:defaults.pcm.card|:defaults.pcm.device" | cut -d: -f2-
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.dmix.rate 48000@Danielsan
Don't you know that Debian/Devuan has already a very advanced dmix "configured with sane defaults"?
If you propose an alternative config, you may try to explain why your config is better than the default dmix config of Debian.
Debian/Devuan Defaults:
defaults.pcm.dmix.rate 48000
defaults.pcm.card 0
defaults.pcm.device 0If you need 44.1 kHz sample rate and "card 1", you can set them in ~/.asoundrc
$ cat ~/.asoundrc
defaults.pcm.dmix.rate 44100
defaults.pcm.card 1These two lines are enough to set "default card" and default sample rate. A self-made dmix config is not needed.
Gentoo Wiki: ALSA: Configuration
When multiple sound cards are in use, the device numbers could be reordered across boots, such that using a name is advantageous.
If the correct name is unclear, a list of valid names can be easily obtained with:
cat /sys/class/sound/card*/idHere is output from a developer's system that has multiple sound cards:
$ cat /sys/class/sound/card*/id Q1U HDMI PCH C930eHere we have the Q1U microphone as Q1U, the builtin HDMI as HDMI, the analog audio jacks as PCH and a webcam's builtin microphone as C930e. Any of these are valid names for the card.
! Warning
Specifying numbers instead of names when multiple sound cards are used can result in device reordering across boots, which will prevent sound from working properly until the configuration file is edited to use the new number._https://wiki.gentoo.org/wiki/ALSA#Configuration
1. Make fftrate the default ALSA resampler
$ cat ~/.asoundrc
defaults.pcm.rate_converter "fftrate"$ file 'rudra veena and pakhawaj.flac'
rudra veena and pakhawaj.flac: FLAC audio bitstream data, 16 bit, stereo, 44.1 kHz, 49123284 samples$ file audio_test_48kHz_16bit.wav
audio_test_48kHz_16bit.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 48000 Hz2. Run media players with debug 2>&1
$ audacious 2>&1 'rudra veena and pakhawaj.flac'
Input: 44100 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 940
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1024
Rates: 30080 --> 32768 (J: 0.09%, T: FFT, W: Vorbis)
Ok.$ /usr/bin/totem 2>&1 'rudra veena and pakhawaj.flac'
Input: 44100 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 940
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1024
Rates: 30080 --> 32768 (J: 0.09%, T: FFT, W: Vorbis)
Ok.Notice that Jitter = 0.09%
Rates: 30080 --> 32768 (J: 0.09%, T: FFT, W: Vorbis)It means that resampling is not exact. This is because of Debian/Devuan defaults:
period_size 1024 periods 16See: /usr/share/alsa/pcm/dmix.conf
$ mpv 2>&1 'rudra veena and pakhawaj.flac'
(+) Audio --aid=1 (flac 2ch 44100Hz)
AO: [alsa] 48000Hz stereo 2ch s16$ mpv 2>&1 audio_test_48kHz_16bit.wav
(+) Audio --aid=1 (pcm_s16le 2ch 48000Hz)
AO: [alsa] 48000Hz stereo 2ch s163. Check hw_params
$ cat /proc/asound/cards
0 [system]: USB-Audio - iMic USB audio system
Griffin Technology, Inc iMic USB audio system at usb-0000:00:1a.0-1.3.4, full s$ cat /proc/asound/system/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 16384This means that the default sample rate is 48kHz. Let us change it. Presumably, there is already a sort of invisible dmix, so that we can set defaults.pcm.dmix.rate in ALSA config.
$ cat ~/.asoundrc
defaults.pcm.rate_converter "fftrate"
defaults.pcm.dmix.rate 44100$ /usr/bin/totem 2>&1 audio_test_48kHz_16bit.wav
Input: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 480
Output: 44100 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 441
Rates: 48000 --> 44100 (J: 0.00%, T: FFT, W: Vorbis)
Ok.$ mpv 2>&1 audio_test_48kHz_16bit.wav
(+) Audio --aid=1 (pcm_s16le 2ch 48000Hz)
AO: [alsa] 44100Hz stereo 2ch s16$ mpv 2>&1 'rudra veena and pakhawaj.flac'
(+) Audio --aid=1 (flac 2ch 44100Hz)
AO: [alsa] 44100Hz stereo 2ch s16$ cat /proc/asound/system/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 2734
buffer_size: 11026It works because dmix is already enabled.
Debian Wiki:
Advanced features such as mixing should already be configured with sane defaults.
_https://wiki.debian.org/ALSA#Configuration
This means that there is already a very advanced software mixer with dmix and other plugins configured for pulseaudio. It might be obvious that this strange construction was created to imitate "bit perfect" playback of audiophile apps for macOS: media players can easily change the default sample rate of the software mixer to avoid software resampling. Try "bit perfect" mode of Audacious for macOS. It makes sense for macOS, because the built-in HW resampler of the DAC is better than the software resampler of macOS.
Why do we need this Stone Age technology? Configure a normal mixer with arateconf and forget about problems with sound quality. The so-called "bit perfect" is not needed, because the fftrate resampler is much better than the built-in HW resampler of your DAC. You can safely configure fftrate for the maximal sample rate supported by your DAC.
NOTE: When software mixer configured by arateconf, mpv does not resample anything,
$ mpv 'rudra veena and pakhawaj.flac'
(+) Audio --aid=1 (flac 2ch 44100Hz)
Input: 44100 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1764
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Rates: 44100 --> 48000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.
AO: [alsa] 44100Hz stereo 2ch s16Explanation:
$ mpv 'rudra veena and pakhawaj.flac'
(+) Audio --aid=1 (flac 2ch 44100Hz) # mpv Input
AO: [alsa] 44100Hz stereo 2ch s16 # mpv Output --> ALSA software mixer
# ALSA software mixer: fftrate
Input: 44100 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1764
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Rates: 44100 --> 48000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.$ audacious 2>&1 '08-Faust - Funeral March Of A Marionette [Tuncated, No Dither].flac'
Input: 352800 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 14112
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Rates: 352800 --> 48000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.$ audacious --version
Audacious 4.5-devel (Devuan 5 Daedalus)$ inxi -Sxxx
System:
Host: devuan Kernel: 6.1.0-40-amd64 arch: x86_64 bits: 64 compiler: gcc
v: 12.2.0 Desktop: MATE v: 1.26.0 info: mate-panel wm: marco v: 1.26.1 vt: 7
dm: LightDM v: 1.26.0 Distro: Devuan GNU/Linux 5 (daedalus)Yesterday 23:15:26
I had already explained you that 24bit means 32bit in this particular caseThe 32-bit representation serves as a larger, more flexible "container" to preserve the higher precision of the 24-bit data and prevent clipping during internal mixing or editing, especially in professional digital audio workstations (DAWs). The 24-bit data is stored within the 32-bit format, ensuring its precision is maintained without needing resampling.
Why 32-bit is Used as a Container
DAWs and audio servers use 32-bit internally to avoid the complexities of dithering and exporting to fixed-point formats like 24-bit...
When 24-bit integer data is stored in a 32-bit container, the 24-bit precision is preserved within the larger format, similar to storing a number like 0100 in a longer string of zeros, like 00000100....the data buffers which these descriptors define will contain the actual sound samples (or have samples written into them) structured like the content of .wav files (though 20 and 24-bit samples must be padded out with zeros at the LSB end to make them all 32-bits long).
_https://wiki.osdev.org/Intel_High_Definition_Audio
If believe that the PulseAudio ALSA plugin is harmless, you may also try believe that you have a "bit perfect" playback, unless you've explicitly enabled resampling in a conf file.