The officially official Devuan Forum!

You are not logged in.

#101 Re: Desktop and Multimedia » debug firefox-esr microfone sound » 2025-11-15 22:40:16

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 31

Firefox 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 discord

#102 Re: Freedom Hacks » How to detect hidden ALSA resampling » 2025-11-15 22:01:23

How to use fftrate with default ALSA software mixer

Debian 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 48000

However, 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 16

fftrate 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) * 1000000

To perform exact resampling with low latency, fftrate needs proper settings

period_time 40000    
periods     4

First 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 44100

If 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        48000

delete 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 frame

about:support

Name     Firefox
Version     140.5.0esr
Build ID     20251106203603
...
Media
Audio Backend    alsa
Max Channels    10000
Preferred Sample Rate    192000

Reference media files:

Best Audiophile Vocal 24 bit - Hi-Res Music 2025 - Audiophile Voices
_https://www.youtube.com/watch?v=uO6jfQ5tQHM
_https://youtu.be/uO6jfQ5tQHM

Best 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.

#103 Re: Desktop and Multimedia » debug firefox-esr microfone sound » 2025-11-15 12:37:51

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/

#104 Re: Freedom Hacks » How to disable pulse-rust backend in Firefox » 2025-11-12 21:13:23

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

#105 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-11-12 15:29:43

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.

#106 Re: Desktop and Multimedia » Output lag routing OBS through apulse » 2025-11-12 11:41:11

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.

#107 Re: Desktop and Multimedia » Output lag routing OBS through apulse » 2025-11-12 00:41:26

stultumanto wrote:

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.

#108 Re: Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-11-11 21:31:43

Phonon should be enabled in KDE settings.

There is also:

$ apt-file find /usr/bin/phononsettings
phonon4qt5settings: /usr/bin/phononsettings

I am not a KDE user, and KDE has nothing to do with the topic.
Start a new topic in Multimedia.

#109 Re: Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-11-11 20:00:42

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-null
phonon4qt5-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 backend

#110 Re: Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-11-11 18:38:37

If 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,   [ ] Normalizator

and try to run  AMAROK without apulse

But why did you post your AMAROK to "How to compile Audacious" topic?

#111 Re: Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-11-11 16:18:16

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.

#112 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-11-10 15:41:48

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"
}

#113 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-11-10 15:12:43

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 48000

Debian Wiki:
Advanced features such as mixing should already be configured with sane defaults.
_https://wiki.debian.org/ALSA#Configuration

#114 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-11-10 14:17:14

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

#115 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-11-09 16:35:57

@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 0

If 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 1

These 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*/id

Here is output from a developer's system that has multiple sound cards:

$ cat /sys/class/sound/card*/id
Q1U
HDMI
PCH
C930e

Here 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

#116 Freedom Hacks » How to detect hidden ALSA resampling » 2025-11-07 16:07:53

igorzwx
Replies: 3

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 Hz

2. 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      16 

See: /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 s16

3. 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: 16384

This 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: 11026

It 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 s16

Explanation:

$ 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.

#117 Re: Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-11-06 21:06:30

$ 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 case

The 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

#118 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-11-06 20:23:49

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.

#119 Re: Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-11-06 14:07:31

It has nothing to do with jack

Try to debug mpv and other players with 2>&1
For example

mpv 2>&1 *.mp3

Arch Linux: A list of common issues and solutions for Podman
_https://man.archlinux.org/man/extra/podman/podman-troubleshooting.7.en

Container permission denied: How to diagnose this error
_https://www.redhat.com/en/blog/container-permission-denied-errors

#120 Re: Desktop and Multimedia » [SOLVED] (alsa) arateconf not saving properly » 2025-11-06 03:14:17

There is already arateconf utility to generate ALSA configs. It works in interactive mode. It is self-explanatory. The problem is that semi-deaf artists cannot use it because of dementia.

#121 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-11-06 02:07:23

If pulseaudio is removed, 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. 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.

This does affect sound quality, but semi-deaf artists might be perfectly happy with such a "fine ALSA".

#122 Re: Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-11-05 23:12:17

you have a container installed in your home folder, which you are not allowed to read

chown: cannot read directory '/home/rich/.local/share/containers/storage/overlay/.../work/work': Permission denied

Install mc, navigate to that container and check who is owner, which permissions

➤ apt show mc
Package: mc
...
Homepage: https://www.midnight-commander.org
...
Description: Midnight Commander - a powerful file manager
...

Do you have a sort of Podman installed?

#123 Re: Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-11-05 21:15:26

Everything works, fftrate can resample everything

I had already explained you that 24bit means 32bit in this particular case

The 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

Everything works, fftrate can resample everything

You still have a problem with pulseaudio:

ERROR ../audacious-plugins/src/alsa/config.cc:238 [guess_element]: No suitable mixer element found.

Read this thread
_https://www.linuxquestions.org/questions/linux-software-2/alsa-error-no-suitable-mixer-element-found-and-can%27t-connect-to-pulseaudio-4175623535/

_https://www.linuxquestions.org/questions/linux-software-2/alsa-error-no-suitable-mixer-element-found-and-can%27t-connect-to-pulseaudio-4175623535/#post5818488
The issue was permission-based. I logged into x as root briefly and pavucontrol opened with no problem, as did Audacious.

So I then went to my user account and tried, as my user name

chown -R lysander /home/lysander

It told me that there are quite a few folders not owned by me, but by root. One of them was /home/lysander/.config/pulse, whose ownership changed to root around the time I was doing the install of alsaequal.

I changed the ownership to my user whilst inside the folder with

#chown -R lysander pulse

Now pavucontrol opens fine and Audacious doesn't show any errors.

I should be careful in the future with installions and using root.

lysander - is the username of that person,

chown means change ownership

#124 Re: Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-11-05 20:11:50

Try to play .dsf with Audacious

Free samples are available
_https://dev1galaxy.org/viewtopic.php?id=6716

$ 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.

#125 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-11-05 17:41:00

Because of your personal Fletcher-Munson curve you may not hear the difference between your ALSA and pure ALSA

Board footer

Forum Software