Вопрос или проблема
Я запускаю приложения с высоким разрешением звука (программы программно-определяемого радио SDR, в данном случае SDR++) на системе, работающей под управлением Ubuntu Budgie 24.04.1. Аппаратное обеспечение ПК — MacBook Pro с процессором Intel 2015 года. Я использую внешний стереозвуковое устройство Cubilux CB5 с 24-битным стереозвуком для стереозвукового ввода через USB. Частота дискретизации звука является важным параметром для этого приложения, потому что она ограничивает эффективную полосу пропускания, которую я могу отобразить на спектральном экране. Приложение SDR, которое я использую, показывает в пользовательском интерфейсе выпадающий список с возможностью выбора звука с частотой 96 кГц для этого устройства, но фактически я получаю только 48 кГц звука, независимо от того, что я делаю. В Windows все работает нормально (хотя только после того, как я выбираю 24-битный стереозвук с частотой 96 кГц на вкладке расширенных настроек звука системы для этого устройства), в противном случае по умолчанию используется 16-битный 48 кГц. Вкладка управления звуком в Budgie Control Center не предоставляет такой уровень детализации. Я не уверен, что именно имеется в виду под звуковым приложением системы Linux (я недавно начал пользоваться Linux), но оно, похоже, не является Pulse Audio, только потому, что оно не распознается в терминале. Какой лучший способ исправить это и какие настройки рекомендуются?
Ответ или решение
Для решения проблемы предоставленной вами конфигурации аудиооборудования и ПО, необходимо углублённо рассмотреть три аспекта: конфигурация системы, использование архитектуры звуковой подсистемы в Linux, а также настройка и тестирование вашего внешнего устройства.
Теория
Прежде всего, понимание того, как обработка и воспроизведение звука настроены в вашей системе на базе Ubuntu Budgie, является ключевым. Звук в Linux обычно управляется несколькими различными подсистемами, самыми известными из которых являются PulseAudio и ALSA.
PulseAudio часто используется как стандартная звуковая система в большинстве распространённых дистрибутивов Linux, предлагая поддержку продвинутых возможности, таких как маршрутизация и переключение между устройствами в реальном времени. Однако, в большинстве случаев по умолчанию оно работает на частоте 48 кГц, что может быть основным ограничением в вашем случае.
ALSA (Advanced Linux Sound Architecture), с другой стороны, является нижележащим уровнем, который непосредственно взаимодействует с аппаратными компонентами. PulseAudio, как правило, работает поверх ALSA, однако, иногда ALSA может быть настроена для прямого взаимодействия с устройствами.
Пример
Рассмотрим ваш практический случай: вы используете внешний USB-устройство Cubilux CB5, которое поддерживает 24-битный стереозвук на частоте 96 кГц. Это устройство прекрасно работает на Windows после соответствующей настройки, что указывает на его исправность и полноценную поддержку необходимых стандартов. В Linux вам необходимо разобраться с настройками ALSA, так как вероятно, ваше устройство не настроено на использование максимальных возможностей.
Применение
-
Проверка доступных устройств и поддерживаемых форматов:
- В терминале используйте команду
aplay -l
для отображения всех звуковых устройств, распознанных системой. Определите номер вашей звуковой карты и устройства. - Далее, выполните
cat /proc/asound/card<n>/stream0
, заменив<n>
на номер вашей звуковой карты. Это выведет список поддерживаемых форматов вашего устройства.
- В терминале используйте команду
-
Настройка ALSA:
-Создайте или отредактируйте файл.asoundrc
в вашем домашнем каталоге для установки устройства по умолчанию, убедившись, что вы указываете устройство и формат, который оно поддерживает (например, 96 кГц). Пример настроек:pcm.!default { type hw card <ваша_карта> } ctl.!default { type hw card <ваша_карта> }
-
Отмена ограничений PulseAudio:
- Если PulseAudio всё-таки установлено, вам нужно будет убедиться, что он не ограничивает частоту дискретизации. Для этого проверьте файл конфигурации PulseAudio, обычно называемый
daemon.conf
, который находится в/etc/pulse/
или~/.config/pulse/
. - Найдите строки
default-sample-rate
иalternate-sample-rate
, установив их в96000
.
- Если PulseAudio всё-таки установлено, вам нужно будет убедиться, что он не ограничивает частоту дискретизации. Для этого проверьте файл конфигурации PulseAudio, обычно называемый
-
Тестирование:
- После выполнения всех настроек перезапустите звуковую службу с помощью команд
pulseaudio --kill
иpulseaudio --start
. - Используйте команды
arecord
для записи иaplay
для воспроизведения звука на 96 кГц для проверки правильности конфигурации.
- После выполнения всех настроек перезапустите звуковую службу с помощью команд
Таким образом, при правильной настройке ALSA и соответствующей проверке параметров PulseAudio, вы сможете добиться того, чтобы система корректно работала и отображала все возможности вашего внешнего аудиоустройства. Успешное применение этих шагов позволит вам использовать вашу SDR программу на полной полосе пропускания без ограничений, связанных с частотой дискретизации.