You are not logged in.
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.
Try Speedometer with Brave browser
Audacious and Audacity are different applications, despite their similar names. Audacious is a lightweight and versatile audio player designed for POSIX-compatible Unix-like operating systems, with limited support for Microsoft Windows, and it is known for its support of Winamp skins and a media library. It began as a fork of Beep Media Player, which itself is a fork of XMMS.
On the other hand, Audacity is an audio editor used for recording, editing, and producing audio files, supporting a wide range of audio formats and offering features like noise reduction and time-stretching.
While both are free and open-source software with similar licensing (GNU General Public License v3.0 or later), they serve distinct purposes: Audacious for playback and Audacity for audio editing.
The confusion between the two is common, but they are separate projects with different development histories and functionalities.
There are many reasons to compile Audacious.
Most important, you can learn how to compile and make Debian packages.
You can also learn how to calculate dependencies.
You can compile Audacious (and plugins) with meson and ninja
1. Setup the build system
arch-meson audacious build2. Compile
meson compile -C build3. Install to debdir
meson install -C build --destdir "$(dirname $(pwd))"/debdir
Ninja is almost invisible, as the name suggest. For example:
$ meson compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/.../Audacious-git/Builds/build
ninja: Entering directory `/home/.../Audacious-git/Builds/build'
[171/171] Linking target src/audacious/audacious$ cat arch-meson
#!/bin/bash -ex
# Meson wrapper for Arch Linux packaging
exec meson setup \
--prefix /usr \
--libdir /usr/lib \
--libexecdir /usr/lib \
--bindir /usr/bin \
--sbindir /usr/bin \
--includedir /usr/include \
--datadir /usr/share \
--mandir /usr/share/man \
--infodir /usr/share/info \
--localedir /usr/share/locale \
--sysconfdir /etc \
--localstatedir /var \
--sharedstatedir /var/lib \
--buildtype release \
--wrap-mode nofallback \
"$@" \
-D b_lto=true
How to compile Audacious
_https://dev1galaxy.org/viewtopic.php?id=7214
Portable Ninja is available here:
_https://github.com/ninja-build/ninja
Portable Meson is available here:
_https://github.com/mesonbuild/meson
arch-meson is available here:
_https://aur.archlinux.org/cgit/aur.git/snapshot/meson-git.tar.gz
What do mean by "performance-hit"?
about:processes Task Manager - see whether tabs or extensions are slowing down Firefox
_https://support.mozilla.org/en-US/kb/task-manager-tabs-or-extensions-are-slowing-firefox
apulse firefoxapulse is not needed because your Firefox does not have "pulse-rust" backend.
It does not make any harm, but you may better remove it from your Firefox launcher.
$ file /usr/bin/firefox-nightly
/usr/bin/firefox-nightly: symbolic link to /usr/lib/firefox-nightly/firefox-nightlyfound the .debdir instruictions fuzzy, so just went a lazy way...
Try to improve them. Compile Audacious, and write a manual for Devuan wiki.
Now you can install it to "debdir"
DESTDIR="$(dirname $(pwd))"/debdir ./mach installand create a Debian package for Firefox Nightly
The manual is here:
_https://dev1galaxy.org/viewtopic.php?pid=58648#p58648
Desktop launcher for Firefox Nightly:
$ cat ~/.local/share/applications/firefox-nightly.desktop
[Desktop Entry]
Name=Firefox Nightly Web Browser
Name[en_US]=Firefox Nightly Web Browser
Comment=Browse the World Wide Web
GenericName=Web Browser
X-GNOME-FullName=Firefox Nightly Web Browser
Exec=/usr/lib/firefox-nightly/firefox-nightly %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox-nightly
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=firefox-nightly
StartupNotify=true
Actions=new-window;new-private-window;open-profile-manager;
Keywords=Internet;WWW;Browser;Web;Explorer;
[Desktop Action new-window]
Exec=/usr/lib/firefox-nightly/firefox --new-window %u
Name=New Window
Name[en_US]=New Window
[Desktop Action new-private-window]
Exec=/usr/lib/firefox-nightly/firefox --private-window %u
Name=New Private Window
Name[en_US]=New Private Window
[Desktop Action open-profile-manager]
Exec=/usr/lib/firefox-nightly/firefox --ProfileManager
Name=Open Profile Manager
Name[en_US]=Open Profile ManagerThe Last Cargo Cult Interviews
_https://www.youtube.com/watch?v=YB-26XqDZj8
_https://youtu.be/YB-26XqDZj8Dec 3, 2009
In THE LAST CARGO CULT, groundbreaking monologist Mike Daisey (If You See Something Say Something) returns to The Public with the story of his journey to a remote South Pacific island whose people worship America and its cargo. This narrative is woven against a searing examination of the international financial crisis that gripped the globe at the same moment. Confronting the financial system that dominates our world, Daisey wrestles with the largest questions of what the collapse means, and what it can tell us about our deepest values. Part adventure story and part memoir, he explores each culture to unearth a human truth between the seemingly primitive and achingly modern.
Native cargo cultists could easily imagine cargo planes because they had witnessed the arrival of real military aircraft during World War II, which delivered supplies and goods seemingly from the sky.
It should not be difficult, therefore, to imagine a Devuan wiki with all the knowledge you need.
Native cargo cultists typically obtain their knowledge of "the true secret of cargo" through dreams or visions, which are considered revelations from ancestral spirits or deities. These prophetic experiences are central to the formation of cargo cults, as a charismatic leader often claims to have received a vision or "myth-dream" that foretells the return of ancestors or a messianic figure who will bring abundant goods... The dream or vision legitimizes the leader's authority and serves as the foundation for the movement's rituals and expectations.
You may also try to read a secret Devuan wiki in your dreams.
This was wrong:
export MOZBUILD_STATE_PATH=/home/rich/mumuIt was not needed.
SCCache can save you a lot of timeSCCache is a trouble maker!!!
22:00.44 W Overall system resources - Wall time: 1320s; CPU: 62%; Read bytes: 12904594432; Write bytes: 30568136704; Read time: 37744; Write time: 1436320
22:00.44 W Swap in/out (MB): 0.65234375/0.77734375Wall time: 1320s;Firefox was built in 22 minutes.
Check about:support
It should show:
Application Basics
Name Firefox Nightly
Version 146.0a1
...
Media
Audio Backend alsawith apulse and without apulse
apulse ./mach run./mach runWhen it is built with ALSA, you should see on terminal (configure stage) something like this:
1:14.72 checking for alsa... yes
1:14.72 checking MOZ_ALSA_CFLAGS... -I/home/rich/mumu/sysroot-x86_64-linux-gnu/usr/include -I/home/rich/mumu/sysroot-x86_64-linux-gnu/usr/include/alsa
1:14.72 checking MOZ_ALSA_LIBS... -L/home/rich/mumu/sysroot-x86_64-linux-gnu/usr/lib/x86_64-linux-gnu -lasound 1:14.74 checking for rustc... /home/rich/.cargo/bin/rustc
1:14.74 checking for cargo... /home/rich/.cargo/bin/cargo
1:16.25 Actually using '/home/rich/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc'
1:16.69 Actually using '/home/rich/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo'
1:16.75 checking rustc version... 1.90.0
1:16.80 checking cargo version... 1.90.0Notice cargo and rustc
-----------------
Other options to try:
ac_add_options --enable-release
ac_add_options --disable-testsIt may fail on very old computers.
--disable-tests Do not build test libraries & programs
--enable-release Build with more conservative, release engineering-oriented options. This may slow down builds. We relish talking about cargo cults because we can imagine ourselves as cargo cultists. Besides, the fact that we are the real cargo cultists is no longer latent or suppressed. Nowadays, so we say, we find that the cargo cult more and more is erupting in the West.
Lamont Lindstrom, Cargo Cult: Strange Stories of Desire from Melanesia and Beyond, 1993.
_https://www.jstor.org/stable/j.ctv9zcktq
Add mate-sensors-applet to panel, and watch processor temperature
_https://help.ubuntu.com/community/SensorInstallHowto#sensors-applet
EDIT:
A manual for Ubuntu newbies is available here:
Building Firefox On Linux
_https://firefox-source-docs.mozilla.org/setup/linux_build.htmlTo fix problems, you can simply re-bootstrap
cd firefox # cd sourcedir ./mach bootstrapIt will open a dialogue:
Please choose the version of Firefox you want to build (see note above): 1. Firefox for Desktop Artifact Mode [default] 2. Firefox for Desktop 3. GeckoView/Firefox for Android Artifact Mode 4. GeckoView/Firefox for Android 5. SpiderMonkey JavaScript engine Your choice: 2and you can choose 2. Firefox for Desktop
Create .mozconfig
➤ cat firefox/.mozconfig # The default mozconfig is located here: sourcedir/browser/config/mozconfig # It specifies the build flags for Firefox. # You can use it by adding: # . $topsrcdir/browser/config/mozconfig # to the top of your own sourcedir/.mozconfig file. . $topsrcdir/browser/config/mozconfig # Restrict the number of parallel jobs to reduce the chance of build failure # For old computers -j2 of j3, for new ones -j10 mk_add_options MOZ_MAKE_FLAGS=-j4 mk_add_options MOZ_OBJDIR="$(dirname $topsrcdir)"/build_dir mk_add_options MOZ_APP_DISPLAYNAME="Firefox Nightly" mk_add_options MOZ_SIMPLE_PACKAGE_NAME=firefox-nightly ac_add_options --with-app-basename="Firefox Nightly" ac_add_options --with-app-name=firefox-nightly ac_add_options --prefix=/usr ac_add_options --enable-audio-backends=alsaThen, you may try to build
cd firefox # cd sourcedir git pull # update source code export LDFLAGS+=" -Wl,--no-keep-memory" # to reduce the chance of build failure during linking due to running out of memory ./mach build -v --priority normalTest
./mach runIt should open your Firefox Nightly. If it works, install it to a folder debdir
DESTDIR="$(dirname $(pwd))"/debdir ./mach installand create a Debian package for it. A detailed step by step manual "how to create a Debian package of debdir" is here:
_https://dev1galaxy.org/viewtopic.php?id=7214Firefox Nightly is quasi portable. You can make a Debian package for Firefox Nightly on Devuan and install it on Linux Mint (and other way round).
You can build the fftrate Debian packages on Devuan, or Linux Mint, or Ubuntu, and install them on other Debian based distros.
But the Raspberry Pi is based on the ARM architecture, you may try to build the fftrate plugin on Raspberry Pi.
@kapqa
You installed the wrong thing, because ...<censored>
because you are always trying to minimize "thinking and making".
Just as muscles degrade from disuse, the brain also degrades if it is not stimulated or "trained". The brain is not a muscle, but it functions on a similar "use it or lose it" principle, where a lack of activity leads to a loss of function and neural pathways. Training the brain, like exercising the body, strengthens its neural connections, improving cognitive function and protecting against decline and progressive dementia.
Dementia is always progressive.
_https://firefox-source-docs.mozilla.org/setup/linux_build.html
Choosing a build type
If you aren’t modifying the Firefox backend, then select one of the Artifact Mode options.
You should select 2. Firefox for Desktop
Note on Artifact Mode:
Artifact builds download prebuilt C++ components rather than building
them locally. Artifact builds are faster!
Artifact builds are recommended for people working on Firefox or
Firefox for Android frontends, or the GeckoView Java API. They are unsuitable
for those working on C++ code. For more information see:
https://firefox-source-docs.mozilla.org/contributing/build/artifact_builds.html.
Please choose the version of Firefox you want to build (see note above):
1. Firefox for Desktop Artifact Mode [default]
2. Firefox for Desktop
3. GeckoView/Firefox for Android Artifact Mode
4. GeckoView/Firefox for Android
5. SpiderMonkey JavaScript engine
Your choice: 2 You have to start from the very beginning
1. Create a new folder
2. Download bootstrap.py
and so on
_https://firefox-source-docs.mozilla.org/setup/linux_build.html
2. Bootstrap a copy of the Firefox source codeNow that your system is ready, we can download the source code and have Firefox automatically download the other dependencies it needs. The below command will download a lot of data (years of Firefox history!) then guide you through the interactive setup process.
curl -LO https://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/main/python/mozboot/bin/bootstrap.py python3 bootstrap.py
Edit:
It is very probable that the same pre-built Artifact will be automatically downloaded.
The easiest way to fix the problem is to remove your Ubuntu together with KDE and pipewire
Is it so difficult to save a copy of terminal output?
The following directory will be created:
/home/rich/.mozbuild
If you would like to use a different directory, rename or move it to your
desired location, and set the MOZBUILD_STATE_PATH environment variable
accordingly.You may also try to remove /home/rich/.mozbuild and set the MOZBUILD_STATE_PATH environment variable
export MOZBUILD_STATE_PATH=/home/rich/mumu./mach run --version 0:00.13 /home/rich/Programs/firefox/objdir-frontend/dist/bin/firefox --version -profile /home/rich/Programs/firefox/objdir-frontend/tmp/profile-default [73542] Sandbox: CanCreateUserNamespace() unshare(CLONE_NEWPID): EPERM Mozilla Firefox 146.0a1
Ubuntu blocks UserNamespace by default with AppArmor unless specific binary is in allowlist.
_https://bugzilla.mozilla.org/show_bug.cgi?id=1981001
It is Ubuntu specific. I do not have such Sandbox messages on Devuan.
Why do you need Ubuntu, if you can install Devuan? Are you a masochist?
To add a binary to the AppArmor allowlist, you need to create or modify an AppArmor profile for that binary, specifying the necessary permissions. This typically involves editing the profile file located in /etc/apparmor.d/ and adding the appropriate rules, then reloading the AppArmor profiles with sudo systemctl reload apparmor.
One may enjoy this sort of masochism. It seems very promising.
./mach run --version 0:00.13 /home/rich/Programs/firefox/objdir-frontend/dist/bin/firefox --version -profile /home/rich/Programs/firefox/objdir-frontend/tmp/profile-default
This means:
sourcedir - firefox
builddir - firefox/objdir-frontend
To create mozconfig, run
mousepad /home/rich/Programs/firefox/.mozconfigCopy and past:
# file: .mozconfig (in sourcedir)
# For old computers -j2 or -j3
# If you need it, uncomment the following line
# mk_add_options MOZ_MAKE_FLAGS=-j3
# Rename Firefox to "Firefox Nightly"
mk_add_options MOZ_APP_DISPLAYNAME="Firefox Nightly"
mk_add_options MOZ_SIMPLE_PACKAGE_NAME=firefox-nightly
ac_add_options --with-app-basename="Firefox Nightly"
ac_add_options --enable-project=browser
ac_add_options --with-app-name=firefox-nightly
ac_add_options --prefix=/usr
# Enable ALSA instead of "pulse-rust"
ac_add_options --enable-audio-backends=alsaand save it.
cd to sourcedir
cd /home/rich/Programs/firefox Export the LDFLAGS+
export LDFLAGS+=" -Wl,--no-keep-memory"Build Firefox
./mach build -v --priority normalTest
./mach run If it works, install it to a folder debdir
DESTDIR="$(dirname $(pwd))"/debdir ./mach installIt will be installed into the folder /home/rich/Programs/debdir
The firefox-nightly binary (executable) will be inside the folder
debdir/usr/lib/firefox-nightly/
Test run
/home/rich/Programs/debdir/usr/lib/firefox-nightly/firefox-nightly/home/rich/Programs/debdir/usr/lib/firefox-nightly/firefox-nightly --versionIf it works, you can make a Debian package of debdir.
A detailed step by step manual "how to create a Debian package of debdir" is here:
_https://dev1galaxy.org/viewtopic.php?id=7214
Is it your build of Firefox? If it is your build it is a success.
Although there are still some minor problems to fix.
Mozilla Firefox 146.0a1 was compiled with default configuration, that is, with pulseaudio and without ALSA.
the "pulse-rust" would persist, even after inserting "media.cubeb.backend alsa"
"pulse-rust" persists simply because ALSA backend is not available - your Firefox was compiled without ALSA backend.
The next step is create "mozconfig" and recompile Firefox.
To use apulse without problems, you have to install and configure the fftrate plugin.
Read the output of your terminal:
$ apulse ./mach run
ALSA lib pcm_dmix.c:1000:(snd_pcm_dmix_open) unable to open slave
[apulse] [error] do_connect_pcm: failed to open ALSA device. Apulse does no resampling or format conversion, leaving that task to ALSA plugins. Ensure that selected device is capable of playing a particular sample format at a particular rate. They have to be supported by either hardware directly, or by "plug" and "dmix" ALSA plugins which will perform required conversions on CPU.
ALSA lib pcm_dsnoop.c:567:(snd_pcm_dsnoop_open) unable to open slaveThis means that you have to create ALSA config with arateconf.
Another option is to compile Firefox with ALSA and without pulseaudio (without "pulse-rust").
In this case, you can use Firefox without apulse.
But a simple ALSA config might be needed (default pcm, etc.) You have already tried such ALSA configs for your RaspberryPI.
It is not mandatory to uninstall pipewire/pulse, but it is advisable.
KDE depends on pipewire. Why not remove them both together with Ubuntu?
I will post a detailed instruction for Firefox with "mozconfig".
In Rust We Trust?!?!
This repo implemented a working Spectre V1 for the Rust language. Using our Spectre V1 transient execution attack, the attack code is able to force a bounds-checked Rust array variable access to read any byte in the Rust application's memory. This attack should be of interest to Rust developers, since Rust is a memory-safe language, and this attack performs an arbitrary buffer overread, thereby demonstrating a vulnerability in Rusts' ability to stop memory access errors.
_https://github.com/toddmaustin/spectre-rust
$ firefox --version
Mozilla Firefox 140.3.1esrNOTE: In "Firefox ESR," ESR stands for Extended Support Release. Debian's Firefox has an "extended support" largely because, perhaps, Debian source packages of Firefox are a sort of broken. They have unsatisfiable build dependencies. While Firefox ESR is supposed to receive crucial security and stability updates, it doesn't get the new feature updates. It is only beginning of troubles, of course.
The phrase "A spectre is haunting Linux - the spectre of Rust" is a play on the opening line of The Communist Manifesto, using the "spectre of Rust" to describe the growing but controversial integration of the Rust programming language into the Linux kernel. This "haunting" refers to the significant debate and resistance among some kernel developers regarding the introduction of a new language, not just Rust itself, which they fear will complicate maintenance, increase the burden on developers, and potentially fragment the codebase. The controversy stems from concerns about the long-term maintainability of a multi-language project and resistance to replacing or modifying core components written in C...
The phrase highlights the tension between the Rust-for-Linux initiative and established kernel maintainers who prefer to keep the kernel primarily in C for maintainability and searchability, particularly in core subsystems like DMA.
Rust's integration into the kernel is happening gradually, with foundational support merged in Linux 6.1 and projects like the uutils (command-line utilities) being rewritten in Rust as potential drop-in replacements for C-based versions.
Rust for Linux
Rust for Linux is the project adding support for the Rust language to the Linux kernel.
_https://rust-for-linux.com/
"Hmm, this sounds familiar...", a sort of new cargo cult, perhaps (think of pulseaudo, systemd, etc.). It seems that they are going to integrate a sort of pulseaudio into the Linux kernel.
Firefox ESR (Devuan/Debian) has both ALSA and pulse-rust backends.
The pulse-rust backend can be disabled in the "hidden preferences" of Firefox.
Configuration Editor for Firefox
_https://support.mozilla.org/en-US/kb/about-config-editor-firefox
1. Run Firefox with apulse
apulse firefox2. Type about:support in the address bar
Application Basics
Name Firefox
Version 140.3.1esr
...
Media
Audio Backend pulse-rust3. Open new tab
Type about:config in the address bar
Type into "Search preference name"
media.cubeb.backendSelect "string"
Press "+"
Type "alsa" then Enter
As a result, you have a new entry in Firefox's "hidden preferences"
media.cubeb.backend alsaQuit Firefox and start it again with apulse
apulse firefoxType about:support in the address bar, and you will see alsa backend instead of pulse-rust
Application Basics
Name Firefox
Version 140.3.1esr
Build ID 20250922173505
...
Media
Audio Backend alsaIf you do not suffer from dementia, try to compile the newest version of Firefox without pulseaudio. It is not difficult. A manual for Ubuntu newbies is available here:
_https://firefox-source-docs.mozilla.org/setup/linux_build.html
ac_add_options --enable-audio-backends=alsa$ firefox-nightly --version
Mozilla Firefox Nightly 146.0a1