С помощью Chat GPT составил конфиг:
pcm.!default {
type asym
playback.pcm {
type dmix
ipc_key 1024
slave.pcm 'hw:0,0'
slave {
pcm 'hw:0,0'
rate 44100
format S24_3LE
}
bindings {
0 0
}
}
capture.pcm {
type plug
slave.pcm 'hw:0,0'
format S24_3LE
}
}
pcm.rate44100 {
type rate
slave.pcm dmix
rate 44100
resample.quality 10
}
pcm.rate48000 {
type rate
slave.pcm dmix
rate 48000
resample.quality 10
}
pcm.rate88200 {
type rate
slave.pcm dmix
rate 88200
resample.quality 10
}
pcm.rate96000 {
type rate
slave.pcm dmix
rate 96000
resample.quality 10
}
pcm.rate192000 {
type rate
slave.pcm dmix
rate 192000
resample.quality 10
}
mpv пишет:
[ao/alsa] ALSA channel map conflicts with channel count!
[ao/alsa] Asked for 2 channels, got 1 - fallback to mono.
AO: [alsa] 44100Hz mono 1ch s32
Ещё такая ошибка:
$ aplay file.wav -v --dump-hw-params
Playing WAVE 'file.wav' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo
HW Params of device "default":
--------------------
ACCESS: MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT: S32_LE
SUBFORMAT: STD MSBITS_MAX MSBITS_20 MSBITS_24
SAMPLE_BITS: 32
FRAME_BITS: 32
CHANNELS: 1
RATE: 44100
PERIOD_TIME: (125170 125171)
PERIOD_SIZE: 5520
PERIOD_BYTES: 22080
PERIODS: [2 3]
BUFFER_TIME: (250340 375511)
BUFFER_SIZE: [11040 16560]
BUFFER_BYTES: [44160 66240]
TICK_TIME: ALL
--------------------
aplay: set_params:1387: Sample format non available
Available formats:
- S32_LE
Если закомментировать секцию bindings:
$ aplay file.wav -v --dump-hw-params
Playing WAVE 'file.wav' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo
HW Params of device "default":
--------------------
ACCESS: MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT: S32_LE
SUBFORMAT: STD MSBITS_MAX MSBITS_20 MSBITS_24
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: 44100
PERIOD_TIME: (125170 125171)
PERIOD_SIZE: 5520
PERIOD_BYTES: 44160
PERIODS: [2 3]
BUFFER_TIME: (250340 375511)
BUFFER_SIZE: [11040 16560]
BUFFER_BYTES: [88320 132480]
TICK_TIME: ALL
--------------------
aplay: set_params:1387: Sample format non available
Available formats:
- S32_LE
Обратите внимание, что с секцией bindings и без неё в выводе aplay разница в 4-х строчках (FRAME_BITS, CHANNELS, PERIOD_BYTES, BUFFER_BYTES).
Может, этот конфиг вообще не правильный. Нужен конфиг, чтобы был звук из нескольких программ, format S24_3LE, чтобы всегда использовалась та частота дискретизации что в источнике (по умолчанию это не работает) и resample.quality 10 и rate_converter samplerate_best (если это имеет смысл, или эти опции не нужны потому что всегда будет использоваться частота дискретизации источника?).