You are not logged in.
libaudcore is inside Audacious
libaudcore is searching for "registered" plugins and cannot find them.
debdir/usr/lib/libaudcore.so.5.5.0Your ALSA is not pure, To get pure ALSA, you have to purge pulseaudio from libasound2-plugins
_https://dev1galaxy.org/viewtopic.php?id=7523
It is not enough to remove pulseaudio, you have to remove other crap to get "pure alsa".
Mate sound applet works with ALSA without problems.
EQ is needed for semi-deaf users to enhance high frequencies.
If you want to try OSS4, you may better try it on ArchLinux.
Arch Linux AUR repository
_https://aur.archlinux.org/packages/ossPackage Details: oss 4.2_2020-2
Package Actions
View PKGBUILD / View Changes
Download snapshot
Search wiki
Git Clone URL: https://aur.archlinux.org/oss.git (read-only, click to copy)
Package Base: oss
Description: Open Sound System UNIX audio architecture
Upstream URL: http://developer.opensound.com/
Keywords: oss
Licenses: GPL2
Conflicts: libflashsupport-oss-git, libflashsupport-oss-nonfree, oss-git, oss-nonfree
Submitter: keenerd
Maintainer: alexdw
Last Packager: alexdw
Better oss-git:
_https://aur.archlinux.org/packages/oss-git
Package Details: oss-git 5693e1e-2
Package Actions
View PKGBUILD / View Changes
Download snapshot
Search wiki
Git Clone URL: https://aur.archlinux.org/oss-git.git (read-only, click to copy)
Package Base: oss-git
Description: Open Sound System UNIX audio architecture
Upstream URL: http://developer.opensound.com/
Keywords: oss
Licenses: GPL2
Conflicts: libflashsupport-oss, libflashsupport-oss-nonfree, oss, oss-nonfree
Provides: oss
Submitter: Nowaker
Maintainer: seawright
Last Packager: seawright
I used PKGBUILD of oss-git package.
maybe therefore the error?
Error was because they both should be recompiled correctly.
It cannot find audacious-plugins, because they were compiled with another "audacions"
INFO ../src/libaudcore/plugin-registry.cc:431 [operator()]: Plugin not found: oss4OSS4 plugin will not be compiled, because you do not have OSS4 installed. It will newer find it.
The method:
1. Compile Audacious
2. Install Audacious
3, Compile Audacious-plugins.
4. Install them
Do not enable OSS4 in the config, because you do not have it installed.
Are you trying to instsall libasound2-plugin-fftrate from Devuan repositories?
You have to compile it and install with dpkg. Then you can find it with "apt show", for example
$ apt show libasound2-plugin-fftrate
Package: libasound2-plugin-fftrate
Version: 1.6.3
Status: install ok installed
Priority: optional
Section: libs
Maintainer: Petrov Sergey <petrovse@mail.ru>
Installed-Size: 172 kB
Depends: libasound2, libasound2-plugins
Download-Size: unknown
APT-Manual-Installed: yes
APT-Sources: /var/lib/dpkg/status
Description: ALSA library additional plugin
This package contains plugin for the ALSA library that are
not included in the main libasound2 package.
.
The following plugins are included:
- fftrate: FFT based rate converter
.
ALSA is the Advanced Linux Sound Architecture.
.
(Repackaged on Tue, 04 Nov 2025 03:13:01 +0100 by dpkg-repack.)@bai4Iej2need
1. You have not read the manual.
2. You claim that is it "a rush job".
Are you a sort of pulseaudio activist?
On the contrary, that would be a regress. If the brain is not trained it regresses.
The brains of semi-deaf, semi-blind, and half-demented victims of pulseaudio do need regular training.
The brain experiences cognitive decline if not mentally stimulated, a process often described as "use it or lose it". Just as a muscle weakens from inactivity, a lack of mental training can lead to reduced thinking skills, memory problems, and a decline in creativity. This is because the brain can be thought of as a muscle that strengthens and maintains its function through regular use and challenges.
reboot is needed after removal of pulseaudio/pipewire
reboot is not needed for arateconf
fftrate should be configured for the maximum sample rate which is supported by your soundcard.
For example, Intel DHA codec (motherboard) supports 32bit 192khz (max), and you set 32bit 192khz with arateconf.
Then run test with arateconf (all audio apps should be closed, when you run test).
The fftrate resampler is much better than the built-in HW resampler of your sound card.
That is why fftrate should be configured for the maximum sample rate which is supported by your soundcard.
Most important, remove pulseaudio/pipewire and purge pulseaudio from libasound2-plugins
_https://dev1galaxy.org/viewtopic.php?id=7523
Have you already purged pulseaudio from libasound2-plugins?
If, for example, you enable "bit perfect" in Audacious and trying to play a DXD wave 352.8 kHz, Audacious will configure the software mixer of macOS (Audio Midi setup) to 88.2kHz (352.8/4 = 88.2). As a result DXD will be downsampled by macOS resampler to 88.2kHz. But stupid mpv "bit perfect" will set the system mixer to 90kHz (then DXD will be downsampled by mpv with crappy resamplers). It means that both users and developers of mpv are ignorant of Arithmetic (and, perhaps, demented).
On macOS, you better try IINA, it supports both exclusive mode and bit perfect in a rather stupid way.
I compilted it with OSS4.
Your mpv is compiled in exactly the same way as Audacious.
You should try Audacious "bit perfect" on macOS
Do you know what is "bit perfect" on macOS?
You do not need it.
libjack-dev was installed as a build dependency for Audacious. It can be safely removed
What is your
audacious --versionlibjack is a dependency for Audacious-plugins.
You may better remove almost all false dependencies from DEBIAN/control and correct version number of your Audacious
For example
Depends: libc6 Devuan 5 only
$ 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)Run simulate without sudo
apt remove libjack-dev libjack0 --simulate
source: alsa-plugins
https://tracker.debian.org/pkg/alsa-plugins
https://packages.debian.org/source/stable/alsa-plugins
http://deb.debian.org/debian/pool/main/a/alsa-plugins/alsa-plugins_1.2.12-2.dscNOTE: If needed, use dget --extract --allow-unauthenticated
Install build dependencies
sudo apt build-dep libasound2-pluginsSimulate
$ apt source libasound2-plugins --simulate
Reading package lists... Done
Picking 'alsa-plugins' as source package instead of 'libasound2-plugins'
NOTICE: 'alsa-plugins' packaging is maintained in the 'Git' version control system at:
https://salsa.debian.org/alsa-team/alsa-plugins.git
Please use:
git clone https://salsa.debian.org/alsa-team/alsa-plugins.git
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 422 kB of source archives.
Fetch source alsa-pluginsDownload source code:
$ dget --extract http://deb.debian.org/debian/pool/main/a/alsa-plugins/alsa-plugins_1.2.12-2.dsc
...
dpkg-source: info: extracting alsa-plugins in alsa-plugins-1.2.12
dpkg-source: info: unpacking alsa-plugins_1.2.12.orig.tar.bz2
dpkg-source: info: unpacking alsa-plugins_1.2.12-2.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying arcam-av_uses_pthreads.patch$ ls -1
alsa-plugins-1.2.12
alsa-plugins_1.2.12-2.debian.tar.xz
alsa-plugins_1.2.12-2.dsc
alsa-plugins_1.2.12.orig.tar.bz2
alsa-plugins_1.2.12.orig.tar.bz2.ascDisable pulseaudio in debian/rules
$ cat alsa-plugins*/debian/rules | grep disable -B3
override_dh_auto_configure:
dh_auto_configure -- \
--with-plugindir=/usr/lib/$(DEB_HOST_MULTIARCH)/alsa-lib \
--disable-static --disable-pulseaudioSet DH_VERBOSE
$ cat alsa-plugins*/debian/rules | grep export
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_LDFLAGS_MAINT_APPEND = -Wl,-z,defs
export DH_VERBOSE=1cd sourcedir
cd alsa-plugins-*Build Debian binary package (deb)
$ dpkg-buildpackage -us -uc -b
...
Plugin directory: /usr/lib/x86_64-linux-gnu/alsa-lib
ALSA_CFLAGS:
ALSA_LIBS: -lasound
JACK plugin: yes
JACK_CFLAGS:
JACK_LIBS: -ljack -lpthread
Pulseaudio plugin:
Samplerate plugin: yes
samplerate_CFLAGS:
samplerate_LIBS: -lsamplerate
Maemo plugin: no
Using Osso resource manager: no
Libav/ffmpeg config:
LIBAV_CFLAGS: -I/usr/include/x86_64-linux-gnu
LIBAV_LIBS: -lavcodec -lavutil -lswresample / /
Libav A52 plugin: yes
Libav rate plugin: yes
Speex rate plugin: lib
Speex preprocess plugin: yes
AAF plugin: no
...
dpkg-deb: building package 'libasound2-plugins' in '../libasound2-plugins_1.2.12-2_amd64.deb'.$ ls -1 ../*.deb
../libasound2-plugins_1.2.12-2_amd64.deb
../libasound2-plugins-dbgsym_1.2.12-2_amd64.debCheck debdir: debian/libasound2-plugins
Simulate
$ apt purge libasound2-plugins --simulate
NOTE: This is only a simulation!
apt needs root privileges for real execution.
Keep also in mind that locking is deactivated,
so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
alsa-config-utils* libasound2-plugin-fftrate* libasound2-plugins*
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
Purg alsa-config-utils [1.6.3]
Purg libasound2-plugin-fftrate [1.6.3]
Purg libasound2-plugins [1.2.7.1-1]The fftrate ALSA plugin packages will be removed
alsa-config-utils* libasound2-plugin-fftrate*Before removal, create Debian packages from the installed ones
cd ..sudo apt install fakeroot$ fakeroot -u dpkg-repack alsa-config-utils libasound2-plugin-fftrate
dpkg-deb: building package 'alsa-config-utils' in './alsa-config-utils_1.6.3_amd64.deb'.
dpkg-deb: building package 'libasound2-plugin-fftrate' in './libasound2-plugin-fftrate_1.6.3_amd64.deb'.$ ls -1 *.deb
alsa-config-utils_1.6.3_amd64.deb
libasound2-plugin-fftrate_1.6.3_amd64.deb
libasound2-plugins_1.2.12-2_amd64.deb
libasound2-plugins-dbgsym_1.2.12-2_amd64.debPurge ALSA plugins
sudo apt purge libasound2-pluginsInstall libasound2-plugins and fftrate packages:
sudo dpkg -i alsa-config-utils_1.6.3_amd64.deb libasound2-plugin-fftrate_1.6.3_amd64.deb libasound2-plugins_1.2.12-2_amd64.debNotice that fftrate.conf was restored together with Debian packages
$ cat /etc/fftrate.conf | grep "Transform type" -A3
# Transform type
# Available: dct, fft (default: dct)
#transform = dct
transform = fftRestart Firefox and test sound quality
Hi-Res Music 32 Bit - Greatest Audiophile Collection - Natural Beat Records
_https://rutube.ru/video/b54c962301787eb1f2758ac8ba97f5bf/Gregorian Chant - Crux Fidelis, 2L audiophile reference recordings
_https://www.youtube.com/watch?v=Qnp3zjB52F0
_https://youtu.be/Qnp3zjB52F0The Mesmerising sound of the OUD
_https://youtu.be/ZLbQcs3W0Bs
$ MOZ_LOG="cubeb:3" firefox 2>&1 rutube.ru/video/b54c962301787eb1f2758ac8ba97f5bf | grep "output stream rate"
[Child 29814: MediaDecoderStateMachine #1]: I/cubeb CubebStreamInit output stream rate 44100$ MOZ_LOG="cubeb:3" firefox 2>&1 youtu.be/Qnp3zjB52F0 | grep "output stream rate"
[Child 30746: MediaDecoderStateMachine #1]: I/cubeb CubebStreamInit output stream rate 48000Note on Exclusive Mode Limitations: Firefox uses 32-bit floating-point audio format by default. If your sound card does not natively support this format, exclusive mode (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.
If you do not know what "plug plugin" is, install fftrate packages and configure ALSA with arateconf (interactive mode). It will fix all problems.
You've already removed the PulseAudio server from your Debian system. However, the PulseAudio ALSA plugin is still installed as part of the libasound2-plugins package. This leftover plugin causes problems even though the PulseAudio server is gone.
Exclusive mode is a critical feature for professional audio applications and low-latency audio work. It allows an application to take direct control of the audio hardware, preventing other applications from playing audio simultaneously and eliminating software mixing layers that add latency and potential quality degradation.
As long as the PulseAudio ALSA plugin is installed, any sort of exclusive mode or direct hardware access is impossible with ALSA. Even though you've removed the PulseAudio server, the plugin still intercepts all ALSA audio calls and tries to route them through the non-existent PulseAudio server.
This means:
1. No exclusive hardware access: Applications cannot open audio devices with hw:X,Y for direct hardware control.
2. No true low-latency mode: The plugin layer adds overhead even when it fails.
3. Audio initialization failures: Applications like Firefox fail to open ALSA devices because the plugin tries to connect to a PulseAudio server that doesn't exist (src/cubeb_alsa.c:718-720)
Why This Matters for Audio Applications
The leftover plugin blocks exclusive mode access and causes audio failures, making it impossible to achieve the low-latency, direct hardware access that removing PulseAudio was meant to enable. Applications using the cubeb audio library (like Firefox) detect the PulseAudio ALSA plugin and apply special workarounds: (src/cubeb_alsa.c:911-916)
These workarounds assume the PulseAudio server is running. When the server is removed but the plugin remains, applications experience:
- Format compatibility issues: Certain audio formats (especially 32-bit Float) fail to initialize (src/cubeb_alsa.c:1012-1016)
- Forced latency hacks: Applications apply minimum latency workarounds for a PulseAudio server that doesn't exist (src/cubeb_alsa.c:1063-1069).
- Complete audio failure: The plugin tries to route audio through PulseAudio, fails, and doesn't fall back to direct ALSA access.
What Rebuilding libasound2-plugins Does
By rebuilding libasound2-plugins with --disable-pulseaudio option, you:
1. Enable a sort of exclusive mode: Applications can now use hw:X,Y device names for direct hardware access without the PulseAudio plugin intercepting the calls.
2. Remove the broken plugin: The PulseAudio ALSA plugin won't be built or installed.
3. Enable direct ALSA access: Applications will use ALSA directly without trying to route through the non-existent PulseAudio server.
4. Fix audio playback: Applications like Firefox will work properly with all audio formats, including 32-bit Float.
5. Achieve lower latency: Without the plugin layer, audio has a more direct path to hardware.
Cubeb is the audio library that Firefox and other Mozilla applications use to play sound (include/cubeb/cubeb.h:16-22). Think of it as Firefox's "audio engine". When cubeb detects the PulseAudio ALSA plugin, it cannot provide exclusive mode access and must work around PulseAudio's limitations (src/cubeb_alsa.c:653-657).
With the plugin removed, cubeb can finally access ALSA directly, enabling exclusive mode capabilities and eliminating the workarounds that were necessary for the broken PulseAudio plugin.
Important: This affects ALL audio applications on your system, not just web browsers. Any application that uses ALSA for audio output will be impacted by the PulseAudio ALSA plugin:
All web browsers - Firefox, Chrome, Chromium, Opera, Brave, Edge, and any other browser
Media players - VLC, MPV, MPlayer, and other video/audio players
Games - Both native Linux games and games running through Wine/Proton
Audio production software - Audacity, Ardour, and other DAWs
Communication apps - Discord, Zoom, Skype, and other VoIP applications
Any other software that plays or records audio
The PulseAudio ALSA plugin sits at the ALSA library level, intercepting all audio calls system-wide. This means every application that tries to use ALSA will encounter the broken plugin trying to route audio through the non-existent PulseAudio server.
Rebuilding libasound2-plugins without PulseAudio fixes audio for your entire system, not just one application.
"Read-only file system"
Copy aiff files to your home directory and convert → wave → flac
flac --keep-foreign-metadata input.wav -o output.flacA common strategy is to first extract the metadata using ffmpeg, perform the audio processing with sox, and then reapply the metadata to the final output file using ffmpeg.
Extract metadata from the original file to a text file using ffmpeg:
ffmpeg -i input.file -f ffmetadata metadata.txtThis saves global metadata. For more detailed stream-specific metadata, you might need a more complex ffmpeg command.
Process audio using sox:
sox input.file temp_output.fileNote that temp_output.file will have the default SoX comment and lack the original metadata.
Re-apply metadata to the final output file using ffmpeg:
ffmpeg -i temp_output.file -map_metadata 0 -metadata_global_key=value ... final_output.fileThe -map_metadata 0 option tells ffmpeg to copy metadata from the first input file (which is temp_output.file in this case, but typically this step involves mapping from a third, metadata-only input file, which is more complex).
For simplicity, many users find it easier to work with a text file to set specific metadata fields manually using the -metadata option or a text file input.
To convert a WAV file to FLAC while keeping the metadata
flac --keep-foreign-metadata input.wav -o output.flac
Bellezza Crudel is a small selection of delightful cantatas and concertos. Vivaldi's world is one of heartfelt, musical intensity, confirming the Venetians' adoration of theatrical beauty.
Antonio Lucio Vivaldi (1678-1741)
Cantate RV 679, 660, 664, 678 / Concerti RV 484, 441Original source DXD (352.8kHz/24bit)
Producer Morten Lindberg, balance engineer and recording producer
2L - the Nordic sound
Audacious macOS, Homebrew repository:
"bit perfect" mode is already implemented and works,
"exclusive mode" is also implemented, but fails.
On macOS, both "bit perfect" and "exclusive mode" work with IINA player (from Homebrew), but above 96 kHz crappy resamplers are automatically enabled.
Hog mode (aka, exclusive mode) in CoreAudio refers to exclusive access to an audio output device, allowing a single application to lock the DAC (Digital-to-Analog Converter) for its exclusive use, thereby bypassing system-level software mixing and resampling and potentially improving audio quality by reducing processing overhead.
This mode is particularly relevant for achieving bit-perfect audio playback, where the audio stream is transmitted without software resampling or format conversion.
On macOS, hog mode is implemented through CoreAudio's exclusive access capabilities, enabling applications to take control of the audio device and avoid interference from other audio streams.
No files found from Audacious? Can you get these files in file browser?
for f in *.aiff; do sox "$f" "${f%.aiff}.wav"; donefor f in *.wav; do flac "$f" "${f%.wav}.flac"; doneIf a package was compiled on your system, it cannot have unsatisfied dependencies.
Do you have pulseaudio installed?
"No suitable mixer element found" is a well known pulseaudio problem (permissions)
For example:
The issue was permission-based. I logged into x as root briefly and pavucontrol opened with no problem, as did Audacious.
_https://www.linuxquestions.org/questions/linux-software-2/alsa-error-no-suitable-mixer-element-found-and-can%27t-connect-to-pulseaudio-4175623535/
How you got my dependencies for Devuan 5 into your package for Devuan 6.
The were not calculated, they were copied from my package.
Do you have pulseaudio installed?
The package "audacious-plugins" was compiled on Devuan 5 or Devuan 6 ?
Or you simply wrote wrong dependencies into DEBIAN/control to minimize work?
To minimize work, you should remove almost all dependencies from DEBIAN/control.
It has nothing to do with qt6.
To install dependencies run
sudo apt install -fThis "magic command" should fix all problems.
dpkg does not install dependencies from repositories, This can be done with apt or apt-get
You may notice that I got the same dependencies (see above):
libavformat59 (>= 7:5.0), ..., libflac12 (>= 1.3.0) The are available in the official repositories and can be easily installed.
NOTE: There is a conspiracy theory about a secret Devuan wiki, which explains how to install Debian packages with secret esoteric commands apt and apt-get
First you compile Audacious and install install it.
When Audacious is installed, you can compile Audacious-plugins.
Audacious is a build dependency for Audacious-plugins.
Audacious-plugins are dependency for Audacious (it does not work without plugins).
When both installed everything should work.
sox input.aiff output.wavflac -o output.flac input.wavfor f in *.aiff; do sox "$f" "${f%.aiff}.wav"; donefor f in *.wav; do flac "$f" "${f%.wav}.flac"; doneConfiguration Editor for Firefox
_https://support.mozilla.org/en-US/kb/about-config-editor-firefoxFirefox's hidden preferences
URL: about:configmedia.resampling.enabled false
You can easily debug Firefox audio playback with a secret command.
Reference media files:
Hi-Res Music 32 Bit - Greatest Audiophile Collection - Natural Beat Records
_https://rutube.ru/video/b54c962301787eb1f2758ac8ba97f5bf/Best Audiophile Vocal 24 bit - Hi-Res Music 2025 - Audiophile Voices
_https://www.youtube.com/watch?v=uO6jfQ5tQHM
_https://youtu.be/uO6jfQ5tQHM$ youtube-dl -F "https://youtu.be/uO6jfQ5tQHM" | grep "audio only" 249 webm audio only audio_quality_low 54k , webm_dash container, opus (48000Hz), 30.39MiB 250 webm audio only audio_quality_low 71k , webm_dash container, opus (48000Hz), 39.87MiB 140 m4a audio only audio_quality_medium 129k , m4a_dash container, mp4a.40.2 (44100Hz), 72.39MiB 251 webm audio only audio_quality_medium 137k , webm_dash container, opus (48000Hz), 76.97MiB
mkdir Cubeb_LOGs
cd Cubeb_LOGsMOZ_LOG="MediaDecoder:5,cubeb:5" firefox 2>&1 youtu.be/uO6jfQ5tQHM | tee firefox_youtube.log$ cat firefox_youtube.log | grep "Input" -m3 -A3
Input: 44100 Hz, 2 ch, 's32_le' (0xa): 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.
--
Input: 48000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1920
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Rates: 48000 --> 48000 (J: 0.00%, T: None, W: Planar)
Ok.$ cat firefox_youtube.log | grep "rate=44100" -m3
[Child 9639: Main Thread]: D/MediaDecoder MediaDecoder[7f121756ba00] MetadataLoaded, channels=1 rate=44100 hasAudio=1 hasVideo=0
[Child 9639: Main Thread]: D/MediaDecoder MediaDecoder[7f1216ea9000] MetadataLoaded, channels=1 rate=44100 hasAudio=1 hasVideo=0
[Child 9639: Main Thread]: D/MediaDecoder MediaDecoder[7f1216e86a00] MetadataLoaded, channels=1 rate=44100 hasAudio=1 hasVideo=0$ cat firefox_youtube.log | grep "rate=48000" -m3
[Child 9639: Main Thread]: D/MediaDecoder MediaDecoder[7f1216ea9300] MetadataLoaded, channels=2 rate=48000 hasAudio=1 hasVideo=1
[Child 9639: Main Thread]: D/MediaDecoder MediaDecoder[7f1216ea9300] FirstFrameLoaded, channels=2 rate=48000 hasAudio=1 hasVideo=1 mPlayState=PLAY_STATE_LOADING transportSeekable=1CONCLUSION:
[ALSA only] Firefox does not resample anything, but it is switching between two available audio formats in YouTube.
MOZ_LOG="MediaDecoder:5,cubeb:5" firefox 2>&1 rutube.ru/video/b54c962301787eb1f2758ac8ba97f5bf | tee firefox_rutube.log$ cat firefox_rutube.log | grep "Input" -m3 -A3
Input: 44100 Hz, 2 ch, 's32_le' (0xa): 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.
--
Input: 44100 Hz, 2 ch, 's32_le' (0xa): 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.$ cat firefox_rutube.log | grep "rate=44100" -m3
[Child 10956: Main Thread]: D/MediaDecoder MediaDecoder[7f2c0b2af800] MetadataLoaded, channels=2 rate=44100 hasAudio=1 hasVideo=1
[Child 10956: Main Thread]: D/MediaDecoder MediaDecoder[7f2c0b2af800] FirstFrameLoaded, channels=2 rate=44100 hasAudio=1 hasVideo=1 mPlayState=PLAY_STATE_LOADING transportSeekable=1$ cat firefox_rutube.log | grep "rate=48000" -m3
<nothing>CONCLUSION:
[ALSA only] Firefox does not resample anything. Only rate=44100 is available.
One may test Firefox with apulse
The top secret settings in Firefox's about:config are invisible. For example:
// Allows to get something non-default for the preferred sample-rate
media.cubeb.force_sample_ratemedia.cubeb.backend
media.cubeb.output_device_https://searchfox.org/firefox-main/source/dom/media/CubebUtils.cpp
#define PREF_VOLUME_SCALE "media.volume_scale" #define PREF_CUBEB_BACKEND "media.cubeb.backend" #define PREF_CUBEB_OUTPUT_DEVICE "media.cubeb.output_device" #define PREF_CUBEB_LATENCY_PLAYBACK "media.cubeb_latency_playback_ms" #define PREF_CUBEB_LATENCY_MTG "media.cubeb_latency_mtg_frames" // Allows to get something non-default for the preferred sample-rate, to allow // troubleshooting in the field and testing. #define PREF_CUBEB_FORCE_SAMPLE_RATE "media.cubeb.force_sample_rate" #define PREF_CUBEB_LOGGING_LEVEL "logging.cubeb" // Hidden pref used by tests to force failure to obtain cubeb context
Open a new tab in Firefox. Type about:config in the address bar.
Type into "Search preference name"
media.cubeb.force_sample_rateSelect "Number"
Press "+"
Type "48000", then Enter
You have a new entry in Firefox's "hidden preferences":
media.cubeb.force_sample_rate 48000Restart Firefox. Type about:support in the address bar.
Name Firefox
Version 140.4.0esr
...
Media
Audio Backend alsa
Max Channels 10000
Preferred Sample Rate 48000Reference media files:
Hi-Res Music 32 Bit - Greatest Audiophile Collection - Natural Beat Records
_https://rutube.ru/video/b54c962301787eb1f2758ac8ba97f5bf/Best Audiophile Vocal 24 bit - Hi-Res Music 2025 - Audiophile Voices
_https://www.youtube.com/watch?v=uO6jfQ5tQHM
_https://youtu.be/uO6jfQ5tQHM$ youtube-dl -F "https://youtu.be/uO6jfQ5tQHM" | grep "audio only" 249 webm audio only audio_quality_low 54k , webm_dash container, opus (48000Hz), 30.39MiB 250 webm audio only audio_quality_low 71k , webm_dash container, opus (48000Hz), 39.87MiB 140 m4a audio only audio_quality_medium 129k , m4a_dash container, mp4a.40.2 (44100Hz), 72.39MiB 251 webm audio only audio_quality_medium 137k , webm_dash container, opus (48000Hz), 76.97MiB
$ firefox 2>&1 youtube.com/watch?v=uO6jfQ5tQHM
Input: 44100 Hz, 2 ch, 's32_le' (0xa): 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.
Input: 44100 Hz, 2 ch, 's32_le' (0xa): 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.
Input: 48000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1920
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Rates: 48000 --> 48000 (J: 0.00%, T: None, W: Planar)
Ok.
Input: 44100 Hz, 2 ch, 's32_le' (0xa): 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.$ firefox 2>&1 rutube.ru/video/b54c962301787eb1f2758ac8ba97f5bf
Input: 44100 Hz, 2 ch, 's32_le' (0xa): 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.The same is for PreferredSampleRate = 44100
It does not change Firefox's playback with ALSA.
You may test it with apulse
apulse firefox 2>&1What has changed is that you can now see Preferred Sample Rate 48000 in about:support
The statement "The deaf may try a blind test. The blind may try a deaf test" is a philosophical observation about perspective, not a literal one. It points to the idea that people with different life experiences and challenges can gain new understanding by experiencing things from another's point of view.
Media: View and debug media players information
_https://developer.chrome.com/docs/devtools/media-panel
Chromium: chrome://media-internals
Brave: brave://media-internals
Brave is a great browser. It has a resampler inside, a sort of low quality linear interpolation, perhaps, because it is faster than "medium crap".
The brave://media-internals page is an official debugging tool
1. Open a new tab and navigate to brave://media-internals
2. Start playing an audio or video source in another tab.
3. Go back to media-internals and click on the player entry for your media.
4. Examine the kAudioTracks, etc.
NOTE: In YouTube and RuTube, "Hi-Res Music" means a sort of low quality mp3 (e.g., mp4a.40.2).
Reference media files:
Hi-Res Music 32 Bit - Greatest Audiophile Collection - Natural Beat Records
_https://rutube.ru/video/b54c962301787eb1f2758ac8ba97f5bf/Best Audiophile Vocal 24 bit - Hi-Res Music 2025 - Audiophile Voices
_https://www.youtube.com/watch?v=uO6jfQ5tQHM
_https://youtu.be/uO6jfQ5tQHM$ youtube-dl -F "https://youtu.be/uO6jfQ5tQHM" | grep "audio only" 249 webm audio only audio_quality_low 54k , webm_dash container, opus (48000Hz), 30.39MiB 250 webm audio only audio_quality_low 71k , webm_dash container, opus (48000Hz), 39.87MiB 140 m4a audio only audio_quality_medium 129k , m4a_dash container, mp4a.40.2 (44100Hz), 72.39MiB 251 webm audio only audio_quality_medium 137k , webm_dash container, opus (48000Hz), 76.97MiB
RuTube: Hi-Res Music 32 Bit - Greatest Audiophile Collection - Natural Beat Records
brave://media-internals
kFrameTitle "Hi-Res Music 32 Bit - Greatest Audiophile Collection - Natural Beat Records"
kFrameUrl "https://rutube.ru/video/b54c962301787eb1f2758ac8ba97f5bf/"kAudioTracks
[
{
"bytes per channel": 2,
"bytes per frame": 4,
"channel layout": "STEREO",
"channels": 2,
"codec": "aac",
"codec delay": 0,
"discard decoder delay": false,
"encryption scheme": "Unencrypted",
"has extra data": true,
"profile": "unknown",
"sample format": "Signed 16-bit",
"samples per second": 44100,
"seek preroll": "0us"
}
]"Selected FFmpegAudioDecoder for audio decoding, config: codec: aac, profile: unknown, bytes_per_channel: 2, channel_layout: STEREO, channels: 2, samples_per_second: 44100, sample_format: Signed 16-bit, bytes_per_frame: 4, seek_preroll: 0us, codec_delay: 0, has extra data: true, encryption scheme: Unencrypted, discard decoder delay: false, target_output_channel_layout: STEREO, target_output_sample_format: Unknown sample format"[ALSA] Brave is upsampling (44100 → 48000 Hz) this particular "Hi-Res Music" of RuTube.
$ brave-browser-stable 2>&1 --audio-buffer-size=8192 rutube.ru/video/b54c962301787eb1f2758ac8ba97f5bf
Input: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Rates: 48000 --> 48000 (J: 0.00%, T: None, W: Planar)
Ok.[apulse] Brave is not resampling (44100 → 44100 Hz) this particular "Hi-Res Music" of RuTube.
$ apulse brave-browser-stable 2>&1 rutube.ru/video/b54c962301787eb1f2758ac8ba97f5bf
Input: 44100 Hz, 2 ch, 's32_le' (0xa): 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.YouTube: Best Audiophile Vocal 24 bit - Hi-Res Music 2025 - Audiophile Voices
brave://media-internals
kFrameTitle "YouTube"
kFrameUrl "https://www.youtube.com/watch?v=uO6jfQ5tQHM"kAudioDecoderName "FFmpegAudioDecoder"
kAudioTracks
[
{
"bytes per channel": 4,
"bytes per frame": 8,
"channel layout": "STEREO",
"channels": 2,
"codec": "opus",
"codec delay": 312,
"discard decoder delay": true,
"encryption scheme": "Unencrypted",
"has extra data": true,
"profile": "unknown",
"sample format": "Float 32-bit",
"samples per second": 48000,
"seek preroll": "80000us"
}
]"Selected FFmpegAudioDecoder for audio decoding, config: codec: opus, profile: unknown, bytes_per_channel: 4, channel_layout: STEREO, channels: 2, samples_per_second: 48000, sample_format: Float 32-bit, bytes_per_frame: 8, seek_preroll: 80000us, codec_delay: 312, has extra data: true, encryption scheme: Unencrypted, discard decoder delay: true, target_output_channel_layout: STEREO, target_output_sample_format: Unknown sample format"[ALSA] Brave is not resampling (48000 → 48000 Hz) "Hi-Res Music" of YouTube.
$ brave-browser-stable 2>&1 --audio-buffer-size=8192 youtube.com/watch?v=uO6jfQ5tQHM
Input: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Rates: 48000 --> 48000 (J: 0.00%, T: None, W: Planar)
Ok.[apulse] Brave is downsampling (48000 → 44100 Hz) "Hi-Res Music" of YouTube.
$ apulse brave-browser-stable 2>&1 youtube.com/watch?v=uO6jfQ5tQHM
Input: 44100 Hz, 2 ch, 's32_le' (0xa): 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.brave://media-internals
kFrameUrl "https://www.youtube.com/watch?v=uO6jfQ5tQHM"
kFrameTitle "Best Audiophile Vocal 24 bit - Hi-Res Music 2025 - Audiophile Voices - YouTube"kAudioTracks
[
{
"bytes per channel": 4,
"bytes per frame": 8,
"channel layout": "STEREO",
"channels": 2,
"codec": "opus",
"codec delay": 312,
"discard decoder delay": true,
"encryption scheme": "Unencrypted",
"has extra data": true,
"profile": "unknown",
"sample format": "Float 32-bit",
"samples per second": 48000,
"seek preroll": "80000us"
}
]"Selected FFmpegAudioDecoder for audio decoding, config: codec: opus, profile: unknown, bytes_per_channel: 4, channel_layout: STEREO, channels: 2, samples_per_second: 48000, sample_format: Float 32-bit, bytes_per_frame: 8, seek_preroll: 80000us, codec_delay: 312, has extra data: true, encryption scheme: Unencrypted, discard decoder delay: true, target_output_channel_layout: STEREO, target_output_sample_format: Unknown sample format"CONCLUSION: Chromium developers are certainly deaf.